【发布时间】:2014-12-20 12:43:03
【问题描述】:
我在 RStudio 中创建了一个包含一些自定义函数的包。
当我更改此包中包含的函数中的某些内容时,我正在使用“构建”选项卡中的“构建和重新加载”来重建包,希望此操作“更新”它。
这通常可以完美运行。但是,有一个功能没有发生。 如果我打开 function.R 文件,修改就在那里;但是,当我从控制台或脚本调用它时,会加载旧版本。 我尝试了一些简单的东西,例如重新启动和“清理并重建”。 我尝试删除它、重建并再次添加它,但即使在这种情况下,令人惊讶的是,旧版本已加载。
我注意到这个函数与包中的其他函数看起来不同的唯一一点是: 我试图对此进行调查,但我仍然缺乏必要的一般理解,我什至不确定这种差异是否真的与问题有关。
备注1:全局环境为空,所以没有屏蔽函数。 备注2:search()路径为(包名是SDA,在第二位):
> search()
[1] ".GlobalEnv" "package:SDA" "package:splines" "tools:rstudio" "package:stats" "package:graphics" "package:grDevices" "package:utils"
[9] "package:datasets" "package:methods" "Autoloads" "package:base"
注意:我正在使用包“devtools”进行开发。
【问题讨论】:
-
重建后,您必须重新安装或更新原始软件包才能在调用
library时使用新功能。你重新安装了吗? R 将继续使用旧包,直到它被更新 -
> install.packages("SDA") 安装包中的错误:更新加载的包 ----- 此外,这不能解释为什么重建只适用于其他功能而不适用于此特别的。
-
您的函数在环境窗格中看起来不同的原因可能是它已被调用。如果您在包中调用另一个函数,您应该会看到它从
更改为窗格中的定义。 R 实际上不会实例化包中的函数对象,直到它们被调用。
标签: r function package rstudio devtools