我需要帮助从终端在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]不起作用。如何将其作为变量名传递?
答案 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")
?