在purrr :: map()中使用dplyr :: count()时出错

时间:2018-04-23 20:50:41

标签: r dplyr purrr

在这个例子中,我想将count()函数应用于数据集中的每个字符变量。

library(dplyr)
library(purrr)

nycflights13::flights %>% 
    select_if(is.character) %>% 
    map(., count)

但是我收到错误消息:

Error in UseMethod("groups") : no applicable method for 
'groups' applied to an object of class "character"

我不确定如何解释错误消息或更新我的代码。类似的代码适用于数字变量,但因子变量会对字符变量产生类似的错误消息

nycflights13::flights %>% 
    select_if(is.numeric) %>% 
    map(., mean, na.rm = TRUE)

nycflights13::flights %>% 
    select_if(is.character) %>% 
    mutate_all(as.factor) %>% 
    map(., count)

1 个答案:

答案 0 :(得分:8)

如果您想要一个带有值计数的元组列表,您可以使用

nycflights13::flights %>% 
  select_if(is.character) %>% 
  map(~count(data.frame(x=.x), x))