0

我使用 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.
}

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

文档更新,功能体没有。

4

1 回答 1

1

所以事实证明我找到了我自己问题的答案......

问题在于我收到了一条警告消息:

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

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

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

于 2019-08-22T20:35:06.843 回答