【问题标题】:Populating a list with lm objects使用 lm 对象填充列表
【发布时间】:2012-11-06 19:51:20
【问题描述】:

我正在尝试使用 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

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

【问题讨论】:

    标签: r list for-loop


    【解决方案1】:

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

    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)
      

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

    【讨论】:

    • 换句话说,关键问题是使用双括号[[]]而不是单括号[]进行索引
    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    相关资源
    最近更新 更多