使用lm对象填充列表

gan*_*ddy 5 for-loop r list

我试图用R中的OLS结果填充一个命名列表.我试过了

li = list()
for (i in 1:10)
    li[["RunOne"]][i] = lm(y~x)
Run Code Online (Sandbox Code Playgroud)

RunOne是一个随机名称,指定拟合运行一个,y并且x是一些预定义的向量.这打破并给我错误

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

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

csg*_*pie 7

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

  1. 创建一个列表,并lm为每个元素添加一个对象:

    li = list() 
    for (i in 1:10) 
        li[[i]] = lm(y~x)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 列出清单:

    li[["RunOne"]] = list()
    for (i in 1:10) 
        li[["RunOne"]][[i]] = lm(y~x)
    
    Run Code Online (Sandbox Code Playgroud)

通常,单个括号[ ]用于向量和数据帧,双括号用于列表.

  • 换句话说,关键问题是用双括号"[[]]"而不是单括号"[]"进行索引 (2认同)