R包构建/安装错误:"找不到对象"即使我在R / sysdata.rda中有它

时间:2017-12-13 22:43:39

标签: r r-package

类似问题

accessing sysdata.rda within package functions

为什么这个类似的问题不适用于我

他们能够实际构建它,显然它们是 Github 错误(不相关)

R VERSION

3.4.2(我也试过使用3.4.3但发生了同样的问题)

编辑:我在Windows 10上

上下文

我已经完全阅读了R包上的以下tutorial以及如何在其中包含.Rda文件。我的TypeError: Cannot read property '0' of null 文件中的LazyData也设置为DESCRIPTION。我使用函数true尝试了data/文件夹实现和R/sysdata.rda实现,并使用了devtools::use_data()internal = FALSE的相应选项。

但是,当我尝试构建软件包,或使用devtools :: install(我假设也构建)时,它会失败并给我以下错误消息:

  

预测错误(finalModel,newInput):object' finalModel'找不到

{。{1}}存储在我的.rda文件中。

有谁知道可能出现这种情况的任何可能原因?

我还要求同事在他的机器上安装包装,但不幸的是他得到了完全相同的错误。

我制作了另一个测试包,作为一个'完整性检查'通过在datasets :: swiss上使用lm()函数创建一个简单的线性模型,然后使用这个新创建的模型作为.rda文件创建一个测试包。当我在这个测试包中的一个函数中引用这个测试模型时,尽管事实上(据我所知)我使用了完全相同的步骤来创建这个新的R包,但它仍然非常有效。

另外,遗憾的是我无法共享我正在创建的包的代码,但我愿意分享使用swiss数据集的测试包的代码。

提前谢谢。

编辑:我在去年创建的.rda文件是在去年创建的,如果这与它有任何关系。

1 个答案:

答案 0 :(得分:1)

我刚刚解决了在程序包管理期间出现object 'objectName' not found的类似问题。就我而言,问题与使用并行化时丢失变量的上下文有关。

使用parallel::clusterExport(cl, varlist=c("function-name"))时,clusterExport会查看.GlobalEnv的变量定义。这在调试期间不会出现,因为我总是在.GlobalEnv中定义变量。解决方案是明确说明环境:parallel::clusterExport(cl, varlist=c("function-name"), envir=environment())。这可以确保并行进程具有data/文件夹和R/sysdata.rda中变量的上下文。

Source