R:命名在函数中创建的对象,该函数具有由函数定义的名称

时间:2014-09-27 00:34:29

标签: r naming

我需要模拟一些数据,我希望有一个内置的所有功能,所以我只需要运行

simulate(scenario="xxx")

此函数将指定方案的所有模拟数据集存储在名为simdat的列表中。在函数中,我想重命名该列表" simdat.xxx"并将其保存为" simdat_xxx.RData",以后稍后我可以加载此文件并访问列表simdat.xxx。我需要列表有一个特定于哪个批次的名称,因为我正在处理很多批次,我可能想要同时加载几个。

有没有办法在函数中创建一个名称并用它来命名一个对象?我一遍又一遍地搜索,找不到办法做到这一点。无奈之下,我正在这样做:在函数中,

(a)使用paste写一个临时脚本,看起来像这样

temp.fn <- function(simdat){
  simdat.xxx <- simdat
  save(simdat.xxx,file="simdat_xxx.RData")
  }

(b)使用writeLines将其写入.R文件

(c)获取文件

(d)运行它

这对我来说真的太过分了。有更好的方法吗?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

试试这个,

simulate <- function(scenario="xxx"){

   simdat <- replicate(4, rnorm(10), simplify=FALSE)
   data_name <- paste("simdat", scenario, sep=".")
   assign(data_name, simdat)
   save(list = data_name, file = paste0("simdat_", scenario, ".Rdata"))
}