无法从Rscript批处理文件中调用roxygenize函数

时间:2012-01-22 20:42:21

标签: r roxygen2 rscript

我正在编写一个使用roxygen2自动对我的包进行氧气化的脚本。我希望它是可执行的,这样它就可以成为准备和安装软件包的一个更大的脚本的一部分,但由于某些原因我无法使用Rscript。

以下是代码:

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

如果我启动交互式R会话或使用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,这似乎是唯一失败的地方。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

在加载methods并致电utils之前,明确加载包roxygen2roxygenize()

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