2014-11-15 72 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允許你從很多不同的角度實現同樣的事情。很多,這是令人困惑的:) –