使用lm对象填充列表

时间:2012-11-18 21:00:17

标签: r list for-loop

我正在尝试使用R中的OLS结果填充命名列表。我尝试了

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

此处RunOne是一个随机名称,指定拟合运行一,yx是一些预定义的向量。这打破并给我错误

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

虽然我理解错误,但我不知道如何解决它。

1 个答案:

答案 0 :(得分:7)

有两种解决方案(具体取决于您想要做什么)。

  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)
    
  3. 通常,单括号[ ]用于向量和数据框,双括号用于列表。