Rscript: определить путь к файлу в качестве аргумента - PullRequest
0 голосов
/ 04 января 2010

Я пытаюсь эту команду:

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 как аргумент (аргументы)?

Спасибо.

Ответы [ 3 ]

1 голос
/ 04 января 2010

Замена = на соответствующий оператор присваивания <- и защита каждого аргумента одинарными кавычками работает для меня:

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 - это то, что вы показали из своего сценария.

0 голосов
/ 04 января 2010

Спасибо, я просто исправляю свою проблему!

Я должен использовать "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'"

Исправление add by Dirk тоже отлично работает (спасибо)!

0 голосов
/ 04 января 2010

У вас есть path_in= внутри двойных кавычек, но path_in2= снаружи. Может ли это быть проблемой?

...