我有一个我反复使用的功能。它返回的一件事是可视化模型效果的图。我希望函数将绘图保存到对象,但我希望对象的名称具有随机组件。我多次使用该函数,不希望图形被覆盖。但我可以在其名称中使用唯一标识符,以便稍后引用它进行写入。
所以我尝试了一些东西,尝试以部分随机的名称保存一个简单的对象。所有这些都失败了,因为我从“< - ”符号中放了一个函数。我不打算举例,因为它们非常非常错误。
所以我希望有类似的东西:
NAME(randomNumber) <- "some plot"
其中,在一个函数中运行多次后(当然右边的实际输入)将导致像
一样随机命名的对象NAME104, NAME314, NAME235, etc.
这一切都可行吗?
答案 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 那样做。