How to use dplyr to generate a frequency table How to use dplyr to generate a frequency table r r

How to use dplyr to generate a frequency table


library(dplyr)df %>%  count(Color, Gender) %>%  group_by(Color) %>%          # now required with changes to dplyr::count()  mutate(prop = prop.table(n))# Source: local data frame [4 x 4]# Groups: Color [3]# #    Color Gender     n      prop#   (fctr) (fctr) (int)     (dbl)# 1   Blue      M     1 1.0000000# 2    Red      F     2 0.6666667# 3    Red     NA     1 0.3333333# 4     NA      M     1 1.0000000

Updating per comment -- if you want to look at each variable separately, you will need to rearrange the dataframe first. You can accomplish this with tidyr:

library(tidyr)library(dplyr)gather(df, "var", "value", -RespondentID) %>%  count(var, value) %>%  group_by(var) %>%             # now required with changes to dplyr::count()  mutate(prop = prop.table(n))# Source: local data frame [6 x 4]# Groups: var [2]# #      var value     n  prop#   (fctr) (chr) (int) (dbl)# 1  Color  Blue     1   0.2# 2  Color   Red     3   0.6# 3  Color    NA     1   0.2# 4 Gender     F     2   0.4# 5 Gender     M     2   0.4# 6 Gender    NA     1   0.2