summarizing counts of a factor with dplyr

前端 未结 3 1356
天涯浪人
天涯浪人 2020-12-24 13:38

I want to group a data frame by a column (owner) and output a new data frame that has counts of each type of a factor at each observation. The real data frame is fairly larg

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-24 14:18

    You could use tidyr with dplyr

    library(dplyr)
    library(tidyr)
    
     df %>%
     gather(observation, Val, obs1:obs2) %>% 
     group_by(owner,observation, Val) %>% 
     summarise(n= n()) %>%
     ungroup() %>%
     spread(Val, n, fill=0)
    

    which gives the output

      #    owner observation loud quiet
      #1     0        obs1    1     1
      #2     0        obs2    2     0
      #3     1        obs1    1     1
      #4     1        obs2    0     2
    

提交回复
热议问题