我有一个R脚本,它根据输入数据计算一个图。R optparse:使用相同前缀的输入和输出文件
输入数据和输出文件应该有相同的文件名,只有文件扩展名应该不同。
例如,R脚本应该使用文件data.csv
并生成图data.png
。
然而,这并不工作:
library(optparse)
option_list = list(
make_option(c("-i", "--in_file"), type="character", default=NULL,
help="input file", metavar="filename"),
make_option(c("-o", "--out_file"), type="character",
default=paste(opt$infile, ".png", sep=""),
help="output file [default= %default]", metavar="filename")
)
opt_parser = OptionParser(option_list=option_list)
opt = parse_args(opt_parser)
这给错误消息,因为opt
无法找到(既不data.png
也不data.csv.png
创建)。
Error in paste(opt$infile, ".png", sep = "") : object 'opt' not found
任何想法如何解决这个问题?
编辑:忘了复制两行代码,现在代码已完成。
据我所知,opt
无法找到,因为它是后来定义的。但是,我的问题仍然存在:如果没有给出其他值,我怎样才能确保输出文件具有相同的文件名(除了扩展名)作为输入文件?
你在哪里定义了'opt'? –
谢谢,'opt'是问题所在,因为它是在我尝试访问它之后定义的。然而,我的问题仍然存在,请参阅编辑问题。 – maxie
可能会将默认值设置为NULL,并在以后的代码中使用'if(is.null(opt $ out_file))opt $ out_file < - gsub(“\\。csv $”,“.png”,opt $ in_file) ' – baptiste