【发布时间】:2019-06-20 09:26:17
【问题描述】:
我想公开已经发布在我的 R 包框架的 data/ 目录中的数据。有关“外部数据”共享基础知识,请参阅此链接:http://r-pkgs.had.co.nz/data.html。
我的数据以 .txt 格式存储。如果您不想通过延迟加载加载数据,只需通过加载 R 包 require(myRpackage) 然后执行 data(datasetName) 来加载数据...您可以使用许多读取正常读取数据.table(), read.csv2() 基础 R 中的函数。
我的数据集在这个例子中被称为“publishedData.txt”,可以如下加载,效果很好:
tmp = read.table("/dir/to/R/package/data/publishedData.txt", sep="\t", header=TRUE)
但是,当我用这个新的闪亮数据重新安装我的 R 包时,我一遍又一遍地收到以下失败消息(见下面粘贴的)。
Downloading GitHub repo myGitRepo/myRpackage@master
from URL https://api.github.com/repos/myGitRepo/myRpackage/zipball/master
Installing myRpackage
library='/Library/Frameworks/R.framework/Versions/3.5/Resources/library' --
install-tests
* installing *source* package ‘myRpackage’ ...
** R
** data
*** moving datasets to lazyload DB
Error in scan(file = file, what = what, sep = sep, quote = quote, dec =
dec, :
line 1 did not have 215 elements
ERROR: lazydata failed for package ‘myRpackage’
* removing
‘/Library/Frameworks/R.framework/Versions/3.5/Resources/library/myRpackage’
Installation failed: Command failed (1)
请注意,上述 Github 存储库不是真实的。我正在写一个通用的帖子,所以不要尝试自己安装这个假的 R 包。
我的问题:当我不知道如何执行延迟数据加载时,如何调试延迟数据加载?即,什么代码决定我的 data/ 文件夹中的 publishedData.txt 中的数据是“A-OK”还是“不好”?我知道他们正在使用 scan(),但它应该知道 .txt 文件中的 sep="\t" ,除此之外,我不确定是什么绊倒了它?
我尝试过的事情:
我已尽我所能清除标题名称(例如,从列名或行名字符串中删除非字母字符)。
我还删除了除 rownames 列之外的任何其他列,其中包含字符串数据而不是数字数据,以防在延迟数据加载中将 stringsAsFactors 设置为默认值 TRUE(这会减慢速度)很多)。
另外,我在每次重新安装尝试后都重新启动了 R...
【问题讨论】:
标签: r lazy-loading r-package