首页 > 解决方案 > 如何检查r中的每列是否至少有一个案例?

问题描述

我有一个数据框列表,我需要了解在每个数据框中是否有一个由所有 NA 填充的列。所以我需要一个像 complete.cases 这样的函数,但对于列,它告诉我每列是否至少有一个答案。我该怎么做?

下面是一个简化的示例(可能在这里没有 NA 列,但只是为了让您理解):

mylist <- list()
for (i in 1:10){
        temp <- data.frame(V1 <- rnorm(10),
                           V2 <- rnorm(10),
                           V3 <- rnorm(10))
        temp[temp<0] <- NA
        mylist[[i]] <- temp
}

标签: rmultiple-columnsna

解决方案


您可以将sapply/lapply与结合使用colSums

any_column_with_all_NA <- sapply(mylist, function(x) any(colSums(!is.na(x)) == 0))

如果数据框中的任何列都包含',这将返回逻辑值 ( TRUE/ )。FALSENA


推荐阅读