R,修改包中的函数后,修改被忽略

Giu*_*ppe 6 r function devtools package rstudio

我在 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" 
Run Code Online (Sandbox Code Playgroud)

注意:我正在使用包“devtools”进行开发。

elc*_*ano 6

我只是来解决同样的问题。您所要做的就是重新启动 R 会话。似乎 R 缓存了该函数,如果您detach删除 ( remove.packages) 包,然后安装 ( install.packages) 并加载 ( require) 它并不重要:您需要关闭会话,然后使用更改构建的包:

install.packages("path_to_package.tar.gz",repos=NULL,type="source")
require("package")
Run Code Online (Sandbox Code Playgroud)

这对我有用。希望能帮助到你。