r - 获取 df (dplyr::count) 每一列的摘要

标签 r dplyr count

我有以下数据框

tbl <- structure(list(col1 = c("a", NA, "b", NA, "c", "c"), col2 = c("n", 
"n", "b", "a", NA, "c"), col3 = c("z", "a", "z", "b", "1", "c"
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))

# A tibble: 6 x 3
  col1  col2  col3 
  <chr> <chr> <chr>
1 a     n     z    
2 NA    n     a    
3 b     b     z    
4 NA    a     b    
5 c     NA    1    
6 c     c     c


是否可以将 dplyr::count 函数应用于每一列或其他一些返回每一列的唯一条目以及每个唯一值出现的数字的函数?

最佳答案

我们可以遍历 namesmap并申请 count

library(dplyr)
library(purrr)
map(names(tbl), ~ tbl %>% 
                     select(.x) %>% 
                     count(!! rlang::sym(.x)))

或者可以申请tablesummarise_all并返回 list柱子
tbl %>%
    summarise_all( ~ list(table(.)))

或者对于不同元素的数量
tbl %>%
    summarise_all(n_distinct)

或在 base R
lapply(tbl, function(x) as.data.frame(table(x)))

关于r - 获取 df (dplyr::count) 每一列的摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61018366/

相关文章:

r - 聚合每个观察值是否可以属于多个组

mysql - 我可以使用 MySQL Join 进行 COUNT 操作吗?

mysql - 从一个字段中选择计数

r - 在 Shiny 中下载 RenderTable() 数据帧上的处理程序

r - 基于成对的变量组合过滤数据框

r - is.atomic() 与 is.vector()

r - 没有适用于 'mutate_' 的方法应用于类 "c(' 整数', 'numeric' ) 的对象”

count - 仓库 : Store (and count) non-fact records?

r - 在 R 中使用 ggnewscale::new_scale() 和 ggplot2 将图例拆分为两列或多列

r - 如何向 quantmod 添加多条垂直线?