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

明白了,谢谢。 –