【发布时间】:2019-12-21 12:31:07
【问题描述】:
我使用 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.
}
重新安装包后,我希望函数的输出是错误消息,但它们输出的结果与我更新包之前的结果相同。
文档更新,函数体没有。
【问题讨论】:
-
显然您使用的是 RStudio,在构建面板中单击“安装并重新启动”会得到什么?
-
原来问题与 R 版本错误无关,而是阻止源代码更新的抑制警告。我在下面发布了对我有用的解决方案。
标签: r rstudio devtools roxygen2 rtools