如何更新 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())
清除我的全局环境清除了我的错误。
我已经使用 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())
清除我的全局环境清除了我的错误。