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

问题描述 投票:1回答:1

类似问题

accessing sysdata.rda within package functions

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

他们能够实际构建它,显然这对他们来说是一个Github错误(不相关)

R版本

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

编辑:我在Windows 10上

上下文

我已经在R包上完整阅读了以下tutorial以及如何在其中包含.Rda文件。我在我的LazyData文件中设置了DESCRIPTION作为true。我使用data/函数和R/sysdata.rdadevtools::use_data()的相应选项尝试了internal = FALSE文件夹实现和internal = TRUE实现。

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

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

其中finalModel存储在我的.rda文件中。

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

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

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

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

先感谢您。

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

r r-package
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.