我正在创建一个R函数,我使用assign(variable_name,some_data_frame)
将variable_name
的值连接到{some_string
,其值some_data_frame
(在函数内找到) {1}}。这使我能够使用>variable_name
调用名称,并使用>get(variable_name)
调用数据框。
我实际上要做的是制作变量:
some_string <- some_data_frame
...然后保存。
我想我可以calling save()
这样做:
save(get(variable_name),file = paste(c(variable_name,'.Rda'),collapse=""))
事实证明,save()
不允许get()
在函数内部。任何提示/更好的方法来做到这一点?提前致谢
答案 0 :(得分:1)
我找到了一个解决方案(我以前遗憾地忽略了一个主题) https://stat.ethz.ch/pipermail/r-help/2011-September/289404.html 因此: do.call(save,list(variable_name,file = paste(variable_name,“rda”,sep =“。”)))
@PiotrZieliński@ LarsArneJordanger
答案 1 :(得分:0)
以下程序可以解决您的问题。
variable_name <- "some_string"
some_data_frame <- data.frame()
assign(x = variable_name,
value = some_data_frame)
save_quote <- bquote(
save(.(as.name(variable_name)),
file = paste0(c(.(variable_name)),
".Rda")))
save_quote
save(some_string, file = paste0(c("some_string"), ".Rda"))
eval(save_quote)
这个想法是bquote
+ .()
构造创建了调用
你需要,然后你只需要评估那个电话。