2014-02-07 71 views
-1

我需要創建潛在的大量變量。我想他們的名字自動創建變量名稱以便在將來分配R

var.1,var.2,var.3等

我正在考慮使用一個for循環。爲了試驗,我只用了一次迭代,即i = 1。我試過粘貼()和打印(),但都不起作用。

paste("detect.","1", sep="") = 2 
Error in paste("detect.", "1", sep = "") = 2 : 
target of assignment expands to non-language object 

print("detect.","1", sep="") = 1 
Error in print("detect.", "1", sep = "") = 1 : 
target of assignment expands to non-language object 

我也嘗試添加as.vector()和其他人,但他們都沒有工作。

如果可能的話,任何人都可以在不使用for循環的情況下提供更好的解決方案嗎?

感謝

+3

不,你並不需要 「潛在創建的變量,一個巨大的數字。」您需要了解如何使用列表和data.frames。 – Roland

+0

你能詳細一點嗎?謝謝 – wen

+1

我不知道我的建議不清楚。你不應該用許多變量來拋棄你的全球環境。你應該把它們放在更大的數據結構中。 R帶有的功能使得使用列表和數據框比使用工作空間中的許多變量更容易。這只是通用的建議,可以在互聯網和SO上找到例子。如果你需要'assign'和'get',並且沒有在環境中進行高級工作,那麼你就可以以一種複雜的方式輕鬆完成任務。 – Roland

回答

1

你想assign

> assign(paste("detect.", "1", sep=""), 2) 
> detect.1 
[1] 2 
+0

非常感謝你! – wen

+1

我仍然建議@羅蘭的建議。我不確切知道你在做什麼,但我的猜測是這是一個列表會更好的事情。它可以像'detect = list()一樣簡單;因爲(我在1:10)檢測[i] = 2' –