在通过 R 中的 assign() 连接的变量名称和值上使用 save()
Using save() on a variable name and value connected through assign() in R
我正在创建一个 R 函数,其中我使用 assign(variable_name,some_data_frame)
将 variable_name
的值连接到 some_string
(在函数内部找到),some_string
=15=]。这使我能够使用 >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()
在函数内部。有什么 tips/better 方法可以做到这一点吗?提前致谢
以下步骤应该可以解决您的问题。
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
+ .()
构造创建调用
你需要,然后你只需要评估那个电话。
我找到了解决方案(不幸的是,在我之前忽略的一个线程中)
https://stat.ethz.ch/pipermail/r-help/2011-September/289404.html
因此 :
do.call(保存,列表(variable_name, 文件=粘贴(variable_name, "rda", sep = ".")))
@PiotrZieliński @LarsArneJordanger
我正在创建一个 R 函数,其中我使用 assign(variable_name,some_data_frame)
将 variable_name
的值连接到 some_string
(在函数内部找到),some_string
=15=]。这使我能够使用 >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()
在函数内部。有什么 tips/better 方法可以做到这一点吗?提前致谢
以下步骤应该可以解决您的问题。
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
+ .()
构造创建调用
你需要,然后你只需要评估那个电话。
我找到了解决方案(不幸的是,在我之前忽略的一个线程中)
https://stat.ethz.ch/pipermail/r-help/2011-September/289404.html
因此 :
do.call(保存,列表(variable_name, 文件=粘贴(variable_name, "rda", sep = ".")))
@PiotrZieliński @LarsArneJordanger