![](/img/trans.png)
[英]How do I generate a frequency table on R via dplyr and plot its values with ggplot?
[英]How to use dplyr to generate a frequency table
我喜歡在我的數據框中創建一個頻率為幾列的表。 我正在復制下面的部分數據框。
該表應該具有Color中“red”和“Gender”中“F”的頻率(n和%)。
我認為dplyr包可以做到這一點,但我無法弄清楚。
謝謝-
RespondentID Color Gender 1 1503 Red F 2 1653 NA M 3 1982 Red F 4 4862 Red NA 15 4880 Blue M
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
更新每條評論 - 如果您想分別查看每個變量,則需要先重新排列數據框。 你可以用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.