数据未从R中的命名空间导出

时间:2016-11-01 16:13:55

标签: r github namespaces devtools roxygen2

我已经在我的笔记本电脑上设置并定期更新我的R包到GitHub,跟随Hadley关于Devtools,Roxygen2等的大量文档。昨天我决定使用我的主PC,现在我正在寻求将更改推送到GitHub。输入document()后出现以下错误:

Error: 'Adult_Females' is not an exported object from 'namespace:gbm.auto'

Adult_Females是/ Data中第一个数据文件的名称。根据{{​​3}}(向下滚动到'数据')

“存在于数据中的文件/不使用通常的命名空间机制,不需要导出。”

那么......一个人要做什么?我没有以任何方式编辑Adult_Females,我编辑的R脚本没有引用它。我怀疑是这个错误会弹出所有的数据文件,而这恰好是第一个,但这是猜想。

提前致谢。 install_github("SimonDedman/gbm.auto")如果你想看看。

2 个答案:

答案 0 :(得分:5)

在编写包含数据集的R包时遇到了类似的问题。我猜你必须用不同的名字保存数据集。例如,您可以写:

devtools:::use_data(YourDataSetName, pkg = "Path_to_Pkg/data", internal=FALSE)

但是在data.R文件中,您在最后指定了> YourDataSetName以外的数据集名称(假设您在此处遵循Hadley的说明:http://r-pkgs.had.co.nz/data.html) 。确保保存到“data”文件夹的数据对象与data.R文件中指定的数据对象相同。

答案 1 :(得分:2)

对于数据对象,名称必须在四(4)个位置匹配,因此请全部检查:

  1. 数据名称/ foo.rda文件
  2. data / foo.rda文件中对象的名称
  3. R / foo.R文件的名称
  4. R / foo.R文件末尾的字符串
  5. 所有四个项目必须匹配 - 在这种情况下'foo'。如果更改foo.rda和foo.R文件的名称,比如bar.rda和bar.R,很容易忘记将.rda文件中的对象从'foo'重命名为'bar'。通常最简单的方法是加载文件,重命名对象,并以新名称保存文件:

    load('data/foo.rda')
    bar <- foo
    save(bar, file='data/bar.rda')
    

    如果不这样做,则会收到有关未从命名空间加载的对象的无用错误。您不需要@export数据对象,因此请确保名称在所有位置都匹配。