【问题标题】:List Indexing in R over a loop在循环中列出 R 中的索引
【发布时间】:2015-02-03 07:25:50
【问题描述】:

我是在 R 中使用列表的新手,我正在尝试在各种数据帧上运行一个循环,这些数据帧为每个帧存储多个模型。我想要与列表的第一个索引中的给定数据框相对应的模型;例如[[i]][1],[[i]][2]。以下示例覆盖列表:

f1 <- data.frame(x = seq(1:6), y = sample(1:100, 6, replace = TRUE), z = rnorm(6))
f2 <- data.frame(x = seq(6,11), y = sample(1:100, 6, replace = TRUE), z = rnorm(6))

data.frames <- list(f1,f2)
fit <- list()

for(i in 1:length(data.frames)){
    fit[[i]] <- lm(y ~ x, data = data.frames[[i]])  
    fit[[i]] <- lm(y ~ x + z, data = data.frames[[i]])  
}

知道如何在循环中设置列表或索引,以便生成一个输出,该输出具有第一帧的两个模型,引用为 [[1]][1] 和 [[1]][2 ] 和第二帧为 [[2]][1] 和 [[2]][2]?感谢您的所有帮助。

【问题讨论】:

    标签: r list


    【解决方案1】:

    在单个lapply 调用中计算两个模型,该调用应用于data.frames list 的每个部分:

    lapply(data.frames, function(i) {
      list(lm(y ~ x, data = i), 
           lm(y ~ x + z, data=i))
    })
    

    【讨论】:

      猜你喜欢
      • 2017-12-29
      • 2017-01-17
      • 2015-05-28
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      相关资源
      最近更新 更多