我試圖填充一組 矩陣,其中矩陣(對象)名稱保存在列表中。我可以 使用get()返回具有給定名稱的對象,但當我使用get()來定義矩陣 對象時,我是 運行到函數問題我想填充。R get()函數錯誤
#Create list of matrix names:
list.names <- c("m.1")
#Create matrix object
m.1 <- matrix(nrow=2,ncol=2)
#Return matrix m.1 from the list.names using get(). Works great!
get(list.names[1])
#Populate m.1 with some values. Doesn't work.
get(list.names[1]) <- c(1,2,3,4)
在代碼的最後一行
所以,我得到一個錯誤:
找不到功能 「使< - 」
同樣,我可以使用呼叫M.1:
eval(as.name(list.name[1]))
但是當我嘗試填充矩陣時,R會返回一個類似的'could not find function'錯誤。
有人能解釋我的方法中的錯誤嗎?
編輯/更新:
所以在我試圖簡化張貼在這裏的問題,我意識到,我可能過於簡化什麼,我試圖做的。
所以,實際上,我試圖在一組基元中填充元素。這些矩陣的名稱包含在list.names對象中。我使用嵌套for()循環來填充矩陣內的每個元素。
所以,其實,我的問題會更準確地表述爲:
get(list.names[1])[1,1] <- some_value
一對夫婦的答覆都建議我用分配基於我原來的職位,但考慮到我attemping到在對象中「賦值」一個元素而不是整個對象,這種方法將無法工作。
對不起,我感到困惑。
我想你想'assign'在'assign(get(list.names [1]),1:4)'中。我無法解釋具體情況,但解釋聽起來像這樣:從'get'返回的對象沒有賦值('<-')方法,這是錯誤所指示的。所有的警告你幾乎不需要這種體操來達到類似的結果。在另一個問題上擴展這個可能會產生一些更好的答案,理解和代碼。 – Justin 2013-03-08 21:57:52
@Justin不完全。它是'get()'沒有賦值函數,不是'get()'返回的對象。基本上沒有''get < - '()'函數,因此錯誤。它是解析器,它看到這種構造並將它轉換爲調用「get < - 」(x = list.names [1],value = c(1,2,3,4))'評估參數,從而得出關於沒有函數''get < - 「'的錯誤。 – 2013-03-08 22:11:42