gpt4 book ai didi

arrays - 如何将数组作为参数传递给 R 脚本命令行运行?

转载 作者:行者123 更新时间:2023-12-05 02:18:37 24 4
gpt4 key购买 nike

我正在尝试通过 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 <- commandArgs(TRUE) 在我的脚本中获取参数。我只需要将声明的数组识别为一个参数 - 或者以正确的方式声明它并将其作为参数以正确的方式传递给我的脚本。

谢谢!

最佳答案

首先,我不确定您是否应该使用 set 在终端中声明任何变量,但是您可以在 man set 页面上看到更多内容。

我认为有一些方法可以尝试将数组传递给 R 脚本,这主要取决于您如何在终端中声明 my_array


1 - “my_array”可以是 bash 中的字符串:

$ my_array="c(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

2 - “my_array”可以是 bash 中的数组:

$ my_array=(0,1,2,3,4)
$ Rscript my_script ${my_array[*]}

并且在 R 中,args 已经是您的数组,但类型为字符:

args <- commandArgs(trailingOnly=TRUE) 
print(args)
# [1] "0" "1" "2" "3" "4" "5"

关于arrays - 如何将数组作为参数传递给 R 脚本命令行运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44787627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com