Arrays 如何将数组作为参数传递给R脚本命令行运行?
我试图通过Windows中的命令行将数百个元素的数组作为R脚本的参数传递。首先,我想以某种方式声明我的数组。我在命令行中这样做:Arrays 如何将数组作为参数传递给R脚本命令行运行?,arrays,r,command-line,arguments,Arrays,R,Command Line,Arguments,我试图通过Windows中的命令行将数百个元素的数组作为R脚本的参数传递。首先,我想以某种方式声明我的数组。我在命令行中这样做: set my_array=c(0,1,2,3,4,5,6,7,8,9,...,700) 然后我想运行我的脚本并获取数组作为参数 Rscript my_script my_array 但是当我尝试此操作时,出现了一条错误消息,说找不到“对象my_array”。我知道如何使用args获取脚本中的参数。我想我理解您在这里尝试的操作,如果我错了,请告诉我 我创建了一个R脚
set my_array=c(0,1,2,3,4,5,6,7,8,9,...,700)
然后我想运行我的脚本并获取数组作为参数
Rscript my_script my_array
但是当我尝试此操作时,出现了一条错误消息,说找不到“对象my_array”。我知道如何使用
args获取脚本中的参数。我想我理解您在这里尝试的操作,如果我错了,请告诉我
我创建了一个R脚本(称为script.R),其中包含以下内容:
args <- commandArgs(TRUE)
eval(parse(text=args[1]))
print(myarray)
如您所见,参数被传递(在您的脚本中,您可以使用print(args)来查看传递的内容和方式),我使用eval(parse(text=…))使其执行(在脚本中创建myarray),然后我可以用它做我想做的事情(在我的例子中,我打印了它,但您可以做分析或其他事情)。这有帮助吗?首先,我不确定您是否应该使用set
在终端中声明任何变量,但您可以在man set
页面上看到更多信息
我认为有一些方法可以尝试将数组传递给R脚本,这主要取决于如何在终端中声明my_数组
1-“我的数组”可以是bash中的字符串:
$ my_array="c(0,1,2,3,4)"
$ Rscript my_script ${my_array}
$ my_array=(0,1,2,3,4)
$ Rscript my_script ${my_array[*]}
并使用R脚本中的eval(parse(text=())
将参数作为向量转换为R环境
args <- commandArgs(trailingOnly=TRUE)
print(args)
# c(0,1,2,3,4,5,6,7,8,9)
args <- eval(parse(text=args[1]))
print(args)
# [1] 0 1 2 3 4 5 6 7 8 9
在R中,args
已经是您的数组,但类型为character:
args <- commandArgs(trailingOnly=TRUE)
print(args)
# [1] "0" "1" "2" "3" "4" "5"
args如果数组中有数百个值,那么将其写入文本文件并将文件路径作为参数传递,然后让R读入可能更有用。谢谢,Joy!但我的问题是,我必须传递数百个元素的多个数组。因此,如果我在同一命令行中声明数组,就像在Rscript脚本中一样.R myarray=“c(1,3,4)”
我无法声明我需要的所有内容。
args <- commandArgs(trailingOnly=TRUE)
print(args)
# [1] "0" "1" "2" "3" "4" "5"