2014-11-15 41 views
0

我有一个重复使用的函数。它返回的东西之一是一个可视化模型效果的阴谋。我想要的功能将绘图保存到一个对象,但我希望对象的名称有一个随机组件。我多次使用这个函数,不想重写这些图。但是我可以在其名称中使用唯一标识符来稍后引用它来进行写入。使用随机名称创建(并保存到)对象

所以我尝试了几件事情,试图在部分随机的名字下保存一个简单的对象。所有这些都失败了,因为我在“< - ”标记中放置了一个功能。我不会举例,因为他们错了。

所以我想有这样的:

NAME(randomNumber) <- "some plot" 

其中,在一个函数(与课程右侧的实际输入)运行多次后,会导致随机命名的类似

对象
NAME104, NAME314, NAME235, etc. 

这完全可行吗?

回答

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" 

但真的不要这样做。

+0

我买你的论点。很简单!同样,R允许你从很多不同的角度实现同样的事情。很多,这是令人困惑的:) –