使用save()通过R中的assign()连接的变量名称和值
我正在制作一个R函数,其中我使用assign(variable_name,some_data_frame)
连接值为variable_name
,其值为some_string
(在函数内部找到) ,到some_data_frame
。这使我能够通过>variable_name
和>get(variable_name)
调用名称。使用save()通过R中的assign()连接的变量名称和值
什么实际上,我试图做的是使该变量:
some_string <- some_data_frame
...然后保存。 我以为我可以通过calling save()
这样做:
save(get(variable_name),file = paste(c(variable_name,'.Rda'),collapse=""))
事实证明,save()
不允许get()
ITO是里面的功能。任何提示/更好的方法来做到这一点?在此先感谢
我找到了解决方法(在一个线程可惜我以前忽略)
https://stat.ethz.ch/pipermail/r-help/2011-September/289404.html 这样: “” do.call(保存列表(变量名,文件=膏(变量名, “RDA”,九月=) ))
@PiotrZieliń[email protected]
不错!正是我需要的。它的R怪癖之一很难缠绕你的头。 – zach
以下过程应解决您的问题。
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
+ .()
建设创建你所需要的呼叫 ,然后你只需要评估这一呼吁。
你真的需要用'分配()步骤'如果你再保存呢?你可以写'save(some_data_frame),file = paste0(some_string,“.Rda”)'? – zielinskipp
是的,因为我希望它可以用正确的变量名称(不只是文件名)保存 – Nli
@PiotrZieliński – Nli