列表中的双循环r

时间:2016-09-23 19:11:07

标签: r list loops

这是使用模拟数据简化我的问题。我想对列表的元素执行双循环以获取一些摘要统计信息。这是我的数据结构和approchimation的简化:

HasMany(p=>p.Lodgings).WithRequired(l=>l.Destination);

现在我可以获得列表中每个元素的value1的含义:

x1 <- runif(10, 5.0, 7.5)
x2 <- runif(10,3,7)
x3 <- runif(10,1,9)
x4 <- rep(1:2, c(6,4))
bag<-data.frame(cbind(x1,x2,x3,x4))
x1 <- runif(10, 5.0, 7.5)
x2 <- runif(10,3,7)
x3 <- runif(10,1,9)
x4 <- rep(1:2, c(6,4))
zul<-data.frame(cbind(x1,x2,x3,x4))
x1 <- runif(10, 5.0, 7.5)
x2 <- runif(10,3,7)
x3 <- runif(10,1,9)
x4 <- rep(1:2, c(6,4))
lwk<-data.frame(cbind(x1,x2,x3,x4))
x1 <- runif(10, 5.0, 7.5)
x2 <- runif(10,3,7)
x3 <- runif(10,1,9)
x4 <- rep(1:2, c(6,4))
job<-data.frame(cbind(x1,x2,x3,x4))
lts <- list(bag,zul,lwk,job)
 for (i in 1:4){
colnames(lts[[i]])=c("val1","val2","val3","class")
}

但我想要的是获得一个包含变量value1,value2,value3的所有方法的列表。我试着这样做:

lst.mean.c1<-list()
for (i in 1:4){
lst.mean.c1[[i]]<-mean(lts[[i]]$val1[lts[[i]]$class==1])
}

我没有任何成功。你能帮我吗

1 个答案:

答案 0 :(得分:3)

例如,使用评论中提到的colMeans

 lapply(lts,
  function(x) colMeans(x[,grep("val",names(x))]))