将count()应用于数据帧中的每个因子变量

时间:2018-12-19 18:30:11

标签: r dplyr purrr

我可以使用purrr::map()来获取dataframe中每一列的均值。我可以结合使用任何地图函数和count()来获取数据框中每个分类变量的计数吗?

library(dplyr)
library(purrr)

mtcars %>% map(mean)

mtcars %>% mutate(am = factor(am, labels = c("auto", "manual")),
         vs = factor(vs, labels = c("V", "S"))) %>% select_if(is.factor) %>% 
map(count)

2 个答案:

答案 0 :(得分:2)

您可以使用“表格”功能代替计数:

mtcars %>% 
  mutate(
    am = factor(am, labels = c("auto", "manual")),
    vs = factor(vs, labels = c("V", "S"))
  ) %>% 
  select_if(is.factor) %>% 
  map(table)

#$`vs`

 #V  S 
#18 14 

#$am

  #auto manual 
    #19     13 

答案 1 :(得分:2)

快到了!只需在count中指定数据:

mtcars %>% 
  mutate(
    am = factor(am, labels = c("auto", "manual")),
    vs = factor(vs, labels = c("V", "S"))
  ) %>% 
  select_if(is.factor) %>% 
  map(~count(data.frame(x = .x), x))