首页 > 解决方案 > 保存获取的变量(分配后)

问题描述

为什么 R 找不到这个变量?

assign(paste0('my', '_var'), 2)
get(paste0('my', '_var')) ## isn't this returning an object?
save(get(paste0('my', '_var')), file =  paste0('my', '_var.RDATA'))

这会引发错误:

Error in save(paste0("my", "_var"), file = paste0("my", "_var.RDATA")) : 
  object ‘paste0("my", "_var")’ not found

标签: r

解决方案


从帮助页面中,该save()函数需要“要保存的对象的名称(作为符号或字符串)”。这些值没有被评估,即您不能放入最终将返回字符串或原始值本身的函数。list=如果要调用函数以返回变量名称的字符串,请使用该参数。

save(list=paste0('my', '_var'), file =  paste0('my', '_var.RDATA'))

尽管在 R 中使用 get/assign 通常不是一个好习惯。它们通常是更好的方法,因此您可能需要重新考虑您的一般方法。

最后,如果您要保存单个对象,则可能需要考虑saveRDS()save()这通常是人们在使用该功能时所期望的行为。


推荐阅读