8

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

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

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

4

1 回答 1

8

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

  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)
    

通常,单括号[ ]用于向量和数据框,双括号用于列表。

于 2012-11-18T21:07:08.517 回答