![](/img/trans.png)
[英]How to 'count' number of non-empty values in a single row across multiple columns in a dataframe
[英]How do I count only non-empty columns in R, while included columns with sparse NA?
我有一个这样的矩阵:
A B C D
1 4 5 NA
43 3 NA NA
85 NA 43 NA
4 2 NA NA
我想弄清楚如何计算非空列的数量(在这种情况下它将 = 3)。 但是,如果我执行ncol(df)
,我会得到 4。我如何才能只计算不完全为空的列(理想情况下使用基数 R 或 Tidyverse(尽量不要使用太多导入的包)?
我们可以用is.na
构建一个逻辑矩阵,获取colSums
,转换为逻辑矩阵。 向量 ( > 0
) 并sum
sum(colSums(!is.na(m1)) > 0)
[1] 3
或者也可以在data.frame
上使用Filter
并获取ncol
ncol(Filter(function(x) any(!is.na(x)), as.data.frame(m1)))
[1] 3
m1 <- structure(c(1L, 43L, 85L, 4L, 4L, 3L, NA, 2L, 5L, NA, 43L, NA,
NA, NA, NA, NA), .Dim = c(4L, 4L), .Dimnames = list(NULL, c("A",
"B", "C", "D")))
我们可以使用sum
和sapply
sum(sapply(df, function(y) sum(length(which(is.na(y))))>0))
output:
[1] 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.