我有一个数据帧,现在我正在寻找变量的汇总计数
df <-data.frame(aa = c(NA,"bali",NA,"bali","bali",NA),
bb = c("can",NA,"can","can",NA,NA),
cc = c(NA,NA,NA,NA,"ban",NA),
dd = c(NA,NA,NA,NA,NA,NA))
只有具有任何单个值的变量的汇总计数。不包括大于0 的变量
var count
aa 3
bb 3
cc 1
您可以获取长格式的数据,删除NA
值,然后删除count
:
library(dplyr)
df %>%
tidyr::pivot_longer(cols = everything(), values_drop_na = TRUE) %>%
count(name)
# name n
# <chr> <int>
#1 aa 3
#2 bb 3
#3 cc 1
这行吗:
> enframe(lapply(df, function(x) table(x, exclude = c('',NA)))) %>% unnest(value)
# A tibble: 3 x 2
name value
<chr> <table>
1 aa 3
2 bb 3
3 cc 1
> df
aa bb cc dd ee
1 <NA> can <NA> NA <NA>
2 bali <NA> <NA> NA
3 <NA> can <NA> NA <NA>
4 bali can <NA> NA
5 bali <NA> ban NA <NA>
6 <NA> <NA> <NA> NA <NA>
>