3

我想从数据框列表中获取一些值并将结果保存在新的数据框中。这就是我的代码的样子:

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 列和 i 行)。

有人可以帮我一把吗?

4

1 回答 1

4

一种方法是使用lapplywithrbind然后调用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))
于 2013-01-28T12:43:54.453 回答