使用随机名称创建(并保存到)对象

时间:2014-11-15 12:47:26

标签: r

我有一个我反复使用的功能。它返回的一件事是可视化模型效果的图。我希望函数将绘图保存到对象,但我希望对象的名称具有随机组件。我多次使用该函数,不希望图形被覆盖。但我可以在其名称中使用唯一标识符,以便稍后引用它进行写入。

所以我尝试了一些东西,尝试以部分随机的名称保存一个简单的对象。所有这些都失败了,因为我从“< - ”符号中放了一个函数。我不打算举例,因为它们非常非常错误。

所以我希望有类似的东西:

NAME(randomNumber) <- "some plot"

其中,在一个函数中运行多次后(当然右边的实际输入)将导致像

一样随机命名的对象
NAME104, NAME314, NAME235, etc.

这一切都可行吗?

1 个答案:

答案 0 :(得分:1)

是的,可行。

不要这样做。

制作对象列表。您可以使用名称作为列表中的键。例如:

 plots = list()
 plots[["NAME104"]] = "some plot"
 plots[["NAMEXXX"]] = "some other plot"

为什么呢?因为现在可以很容易地遍历列表中存储的图表。它也很容易在循环中创建列表,如:

 for(i in 1:100){
   data = read.table(paste("data",i,".csv"))
   name = data$name[1] # get name from column in file
   plots[[name]] = plotthing(data)
 }

如果您真的想要创建一个随机名称的东西,请使用assign

> assign(paste0("NAME",round(runif(1,1,1000))), "hello")
> ls(pattern="NAME*")
[1] "NAME11"  "NAME333" "NAME717" "NAME719"

但真的 DONT 那样做。