【问题标题】:Cannot call roxygenize function from Rscript batch file无法从 Rscript 批处理文件调用 roxygenize 函数
【发布时间】:2012-02-16 09:10:34
【问题描述】:

我正在编写一个脚本,它使用 roxygen2 自动对我的包进行 roxygenize。我希望它是可执行的,以便它可以成为准备和安装包的更大脚本的一部分,但由于某种原因我不能使它与 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 在 base R 中,所以我不知道为什么它不存在。此外,我在许多其他情况下使用 Rscript,这似乎是唯一失败的地方。

非常感谢任何帮助。

【问题讨论】:

  • 这是 roxygen 中的一个错误。在下一个版本发布之前,通过显式加载方法和实用程序来解决它。
  • 谢谢,哈德利。不知道为什么让我发疯。

标签: r roxygen2 rscript


【解决方案1】:

在加载 roxygen2 和调用 roxygenize() 之前显式加载包 methodsutils

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多