用lm对象填充列表

8
我正在尝试在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个回答

9

根据您想要做什么,有两种解决方案。

  1. Create a list, and add an lm object to each element:

    li = list() 
    for (i in 1:10) 
        li[[i]] = lm(y~x)
    
  2. Have a list of lists:

    li[["RunOne"]] = list()
    for (i in 1:10) 
        li[["RunOne"]][[i]] = lm(y~x)
    
通常,单个方括号[ ]用于向量和数据框,而双重方括号用于列表。

2
换句话说,关键问题在于使用双括号 [[]] 进行索引,而不是单括号 [] - Ben Bolker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接