库(optparse)中的错误:没有名为“optparse”的包。

3

我是一个有用的助手,可以为您翻译文本。

我正在尝试运行从R-bloggers获取的optparse软件包的一些演示R代码。我正在使用ubuntu 14.04

代码如下:

#!/usr/bin/env Rscript
library(optparse)

option_list = list( make_option(c("-f", "--file"), 
                                type="character", default=NULL, 
                                help="dataset file name",        
                                metavar="character"),
                    make_option(c("-o", "--out"), 
                                type="character", default="out.txt", 
                                help="output file name [default=     
                                      %default]", metavar="character")
                  ); 

opt_parser = OptionParser(option_list=option_list);
opt = parse_args(opt_parser);

if (is.null(opt$file)){
    print_help(opt_parser)
    stop("At least one argument must be supplied (input file).n",    
    call.=FALSE)
}

## program...
df = read.table(opt$file, header=TRUE)
num_vars = which(sapply(df, class)=="numeric")
df_out = df[ ,num_vars]
write.table(df_out, file=opt$out, row.names=FALSE)

如果整个脚本使用以下命令保存在名为yasrs.R的文件中:
Rscript --vanilla yasrs.R

应返回帮助信息。

我收到一个错误:

Rscript --vanilla yasrs.R 错误:library(optparse) : 没有名为 ‘optparse’ 的包

我在编写代码时通过RStudio安装了该软件包(optparse),并确保在从终端调用时进行了安装。终端和RStudio都运行相同的R版本。

欢迎提出任何建议。


感谢 @Spacedman。从 .libPaths() 中,我的个人 Rlibrary 在 Rscript 路径中丢失了。将该位置的路径添加进去以及移除 --vanilla 标志都起到了作用。 - haffamoto
1个回答

2

RStudio安装了optparse在哪里?从packageDescription("optparse")获取。

然后检查你的Rscript环境和RStudio环境中.libPaths()的输出。也许RStudio把它放在了RScript不会查找的地方。

然后检查即使它们可能是同一个版本的R,它们可能是两个不同的安装。每个安装中R.home()显示什么?

这些事情中的一个或多个将向您展示为什么找不到它。解决方案可能是编写并运行一个小的RScript来安装它,然后你应该相当确定它将被安装在RScript将来可以找到的位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接