【发布时间】:2017-12-13 22:43:38
【问题描述】:
类似问题
accessing sysdata.rda within package functions
为什么这个类似的问题不适用于我
他们能够实际构建它,显然这对他们来说是一个 Github 错误(不相关)
R 版
3.4.2(我也尝试使用 3.4.3 但出现同样的问题)
编辑:我在 Windows 10 上
上下文
我已完整阅读以下关于 R 包的 tutorial 以及如何在其中包含 .Rda 文件。我的DESCRIPTION 文件中的LazyData 也设置为true。我已经尝试了data/ 文件夹实现和R/sysdata.rda 实现,使用函数devtools::use_data() 以及internal = FALSE 和internal = FALSE 的相应选项。
但是,当我尝试构建包或使用 devtools::install(我假设它也可以构建)时,它会失败并给我以下错误消息:
预测错误(finalModel,newInput):找不到对象“finalModel”
finalModel 存储在我的 .rda 文件中的位置。
有谁知道发生这种情况的任何可能原因吗?
我还要求一位同事在他的机器上安装该软件包,但不幸的是他得到了完全相同的错误。
我通过在 datasets::swiss 上使用 lm() 函数创建一个简单的线性模型,制作了另一个测试包作为“健全性检查”,然后使用这个新创建的模型作为 .rda 文件制作了一个测试包。当我在这个测试包中的一个函数中引用这个测试模型时,它却异常有效,尽管(据我所知)我使用完全相同的步骤来创建这个新的 R 包。
另外,很遗憾我无法分享我正在创建的包的代码,但我愿意分享使用瑞士数据集的测试包的代码。
提前谢谢你。
编辑:我放入包中的 .rda 文件是去年创建的,如果这与它有关的话。
【问题讨论】:
-
您是否将 LadyData 设置为 true 还是将 LazyData 设置为 true
-
使用
data(finalModel)是否允许您访问数据? -
抱歉,我修正了我的错字。是的,它是 LazyData。此外, data() 函数不起作用。我得到了同样的错误:“数据中的警告(finalModel):找不到数据集'finalModel'”。另外,据我了解,我不需要使用包应该能够确定我的finalModel在哪里(在sysdata.rda中)之类的功能?感谢您的回复。
-
嗨@Dason,作为最后的手段,我决定在我的Ubuntu VM上使用我的RStudio服务器......并且成功安装了包!我的主机在 Windows 10 上,所以问题可能与 R for Windows 或 Hadley 的 devtools 包有关?
-
如果您使用的是 LazyData,则不需要使用 data(finalModel) - 我只是问您是否尝试过,因为如果使用数据允许您实际查看 finalModel,那么它会指向延迟加载的问题。