2012-11-18 76 views
4

我試圖填充與OLS的結果R.我試圖填充與LM對象的列表

li = list() 
for (i in 1:10) 
    li[["RunOne"]][i] = lm(y~x) 

這裏RunOne是指定擬合過程之一,y和隨機名字命名列表x是一些預定義的向量。這打破了,並給我的錯誤

Warning message: 
In l[["RunOne"]][1] = lm(y ~ x) : 
    number of items to replace is not a multiple of replacement length 

雖然我理解的錯誤,但我不知道如何解決它。

回答

5

有兩種解決方案(具體取決於你想要做什麼)。

  1. 創建列表,並添加一個lm對象到每個元素:

    li = list() 
    for (i in 1:10) 
        li[[i]] = lm(y~x) 
    
  2. 有一個列表的列表:

    li[["RunOne"]] = list() 
    for (i in 1:10) 
        li[["RunOne"]][[i]] = lm(y~x) 
    

典型地,單括號[ ]是用於向量和數據框架,雙括號用於列表。

+2

換句話說,關鍵問題是使用雙括號'[[]]'而不是單個括號進行索引'' –

+0

明白了,謝謝。 –