我尝试这个命令:
Rscript "/Users/test/Scripts/arg_test.R" "path_in=/Users/test/GR/web-app/Rproject/Inputs/Rmerge/Description.csv" path_in2="/Users/test/IdeaProjects/Rproject/Inputs/Rmerge/Template_Auto.csv"
但我有这个错误: 解析时出错(text = args [[i]]):“path_in = /”中出现意外的'/'
Rscript的一部分:
args=(commandArgs(TRUE))
if(length(args)==0){
print("No arguments supplied.")
}else{
for(i in 1:length(args)){
eval(parse(text=args[[i]]))
}
}
path_out = "/Users/test/Rproject/Results/"
annotation = read.csv(paste(path_in, sep=""))
modules = read.csv(paste(path_in2, sep=""))
merge_output = merge(annotation, modules, by = "Module")
如何将path_in定义为参数(args)?
谢谢。
答案 0 :(得分:1)
用适当的赋值运算符=
替换<-
并用单引号保护每个参数对我有用:
Rscript /tmp/RscriptArgs.R \
'path_in<-"/Users/test/GR/web-app/Rproject/Inputs/Rmerge/Description.csv"' \
'path_in2<-"/Users/test/IdeaProjects/Rproject/Inputs/Rmerge/Template_Auto.csv"'
其中/tmp/RscriptArgs.R
是您在脚本中显示的内容。
答案 1 :(得分:0)
双引号内有path_in=
,但path_in2=
在外面。这可能是问题吗?
答案 2 :(得分:0)
谢谢,我只是解决了我的问题!
我应该使用“path_in ='/ Users / test / ...'”而不是“path_in = / Users / test / ...”。 工作得很好。
Rscript "/Users/test/Scripts/arg_test.R" "path_in='/Users/test/GR/web-app/Rproject/Inputs/Rmerge/Gene-level Description for Modules.csv'" "path_in2='/Users/test/IdeaProjects/Rproject/Inputs/Rmerge/Template_Auto.csv'"
修复添加Dirk也很好(谢谢)!