我正在编写一个脚本,该脚本使用roxygen2自动对我的程序包进行充氧。我希望它可以执行,以便它可以作为准备和安装软件包的较大脚本的一部分,但由于某种原因,我无法使其与Rscript一起使用。

这是代码:

#!/usr/bin/env Rscript
library(roxygen2)
roxygenize('.', copy=FALSE)

如果启动交互式R session 或使用R CMD BATCH提交代码,则此方法可以正常工作。但是,如果我通过Rscript以可执行文件的形式直接运行脚本,则会收到此输出和错误消息(无论脚本位于当前目录还是bin中,我都会收到错误消息)。
bin/roxygenize.R
Loading required package: digest
Warning message:
package 'roxygen2' was built under R version 2.13.2
Error in parse.files(r_files) : could not find function "setPackageName"
Calls: roxygenize -> parse.files
Execution halted

看起来setPackageName位于基R中,所以我不知道为什么它不存在。此外,我在许多其他情况下都使用Rscript,这似乎是它唯一失败的地方。

任何帮助深表感谢。

最佳答案

在加载methods并调用utils之前,显式加载包roxygen2roxygenize()

#!/usr/bin/env Rscript
library(methods)
library(utils)
library(roxygen2)
roxygenize('.', copy=FALSE)

关于r - 无法从Rscript批处理文件调用roxygenize函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8964515/

10-11 15:33