我想从数据帧列表中提取一些值,并将结果保存在新的数据帧中。这就是我的代码的样子:
for (i in 1:length(covpatient)){
a <- names(covpatient[i])
b <- sum(covpatient[[i]]$cov == 0)
c <- sum(covpatient[[i]]$cov > 0 & covpatient[[i]]$cov <= 40)
d <- sum(covpatient[[i]]$cov > 40 & covpatient[[i]]$cov <= 100)
e <- sum(covpatient[[i]]$cov > 100)
summary <- c(a,b,c,d,e)
}
因此,对于列表covpatient中的每个数据帧,我想创建一个由5个元素(a,b,c,d,e)组成的摘要变量。然后我想创建一个新的data.frame,它存储所有汇总值(5列和1行)。
有人可以帮我一把吗?
答案 0 :(得分:4)
一种方法是将lapply
与rbind
一起使用,然后调用as.data.frame
。由于没有可以使用的数据,我会给出一般的想法。
o <- lapply(1:length(covpatient), function(i) {
a <- names(covpatient[i])
b <- sum(covpatient[[i]]$cov == 0)
c <- sum(covpatient[[i]]$cov > 0 & covpatient[[i]]$cov <= 40)
d <- sum(covpatient[[i]]$cov > 40 & covpatient[[i]]$cov <= 100)
e <- sum(covpatient[[i]]$cov > 100)
c(a,b,c,d,e)
})
out <- as.data.frame(do.call(rbind, o))