在通过 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