我有以下数据框
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 函数应用于每一列或其他一些返回每一列的唯一条目以及每个唯一值出现的数字的函数?
最佳答案
我们可以遍历 names
与 map
并申请 count
library(dplyr)
library(purrr)
map(names(tbl), ~ tbl %>%
select(.x) %>%
count(!! rlang::sym(.x)))
或者可以申请
table
与 summarise_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/