列出循环中R的索引

时间:2015-02-02 23:20:31

标签: r list

我在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]?感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

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

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