如何更新 R 包中的函数代码?

How to update function code in an R package?

我已经使用 roxygen2 开发工具创建并下载了一个 R 包。当我更新源代码 R 文件时,文档更新正常,但功能代码本身却没有。 install.packages("package-name")重装包时如何获取功能码更新?

我试过使用 stop("...") 在每个函数的开头插入错误消息。当我重新安装代码时,这些函数并没有像它们应该的那样输出错误消息,而是像我更新代码之前那样工作。

每次更新代码时,我都使用以下命令:

devtools::document()
devtools::install()

install.packages("package-name", repos=NULL, type="source")
library(package-name)

只是想了解更多信息,当我尝试以这种方式安装包时:

install.packages("package-name")

我收到以下错误消息:

Warning in install.packages :
  package ‘package-name’ is not available (for R version 3.6.0)

当我的 R 版本为 3.6.0 时,甚至在更新到 3.6.1 后,我也收到了同样的错误消息

我没有将包上传到任何存储库,所以我认为这是有道理的,而是从我的包文件中使用 repos=NULL 在本地安装它。

#' Roxygen comments - this part updates
#'
#' etc.
functionName <- function(...) {
 stop("...") 
 ...
 # This function should crash with an error message every time it is called, 
 # but instead the function body is never updated.
}

重新安装包后,我希望函数的输出是错误消息,但它们输出的结果与我更新包之前的结果相同。

文档更新,函数体不更新。

原来我找到了自己问题的答案...

问题出在我收到的警告消息上:

Warning message: 
In body(fun) : argument is not a function

尽管从未使用过 body(),此函数在某处被内部调用,并且警告阻止了代码更新(但出于某种原因文档仍在更新)。

使用 rm(list=ls()) 清除我的全局环境清除了我的错误。