簡體   English   中英

如何使用dplyr生成頻率表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM