如何在R中将参数作为变量名传递

时间:2018-11-06 22:48:43

标签: r arguments

我需要帮助从终端在R脚本中传递参数作为变量名。我将如下运行脚本:

R < script.R --args "hello"

而且,在脚本中应该有这样的内容:

args <- commandArgs(trailingOnly = TRUE)
assign(args[1],24)
save(args[1], file="output.RData")

但是,我需要将参数作为变量名。我的意思是:如果我使用“数字”参数运行脚本,则脚本中的变量名称应为数字。

assign(args[1], 24)

可以解决问题。但是,在保存功能中,args [1]不起作用。如何将其作为变量名传递?

2 个答案:

答案 0 :(得分:0)

您将无法使用save函数获得文本文件。如果要使用文本版本,则需要使用`dump'。这样可以有效地扩展范围。文件仍然是.Rdata文件事件,没有扩展名:

arg=1
argname="reports"
assign(argname, arg)
reports
#[1] 1
save(reports, file="test.txt")
rm(reports)
rm(argname)
rm(arg)
load("test.txt")

要使用转储:

 dump('reports', file="test2.txt")

这将出现在该文件中。它应该是可解析的(并且对人类可读)R代码:

reports <-
1

答案 1 :(得分:0)

如果您尝试使用

saveRDS(get(args[1]),file="output.rds")