【问题标题】:Drop empty groups of categories in a summary table在汇总表中删除空类别组
【发布时间】:2021-04-01 01:36:20
【问题描述】:

我正在运行数据中几个变量的频率表,如下所示:

frequencies1 <- data %>%
  gather(variable, value,
    Age, 
    Gender, 
    Comparison,
    Tenure
    ) %>%
  group_by(variable, value) %>%
  summarise (n = n()) %>%
  mutate(freq = ((n / sum(n, na.rm = TRUE)) * 100))

输出:

variable            value          n  freq
Age                 18-24          9  0.692
Age                 25-29          2  0.153
Age                 30-34          2  0.153 <- age % = 100% of 13
Comparison                         4  0.307
Comparison          Better         2  0.153
Comparison          Same           4  0.307
Comparison          Worse          3  0.230 <- comparison % = 100% of 13
WhereSeen_Facebook  1              2  0.153
WhereSeen_Instagram 1              5  0.384
WhereSeen_TV        1              9  0.692
Tenure                             1  0.076
Tenure              1 year or less 12 0.923

每个变量没有相同数量的响应(即年龄 n=13、比较 n=9 等...),最终显示为低于值的空白。有没有办法运行频率并过滤掉每个变量的空行?当它们应该仅用于非空值时,比例基于总样本。

期望的输出:

variable            value          n freq
Age                 18-24          9 0.692
Age                 25-29          2 0.153
Age                 30-34          2 0.153 <- age % = 100% of n = 13
Comparison          Better         2 0.222
Comparison          Same           4 0.444
Comparison          Worse          3 0.333 <- comparison % = 100% of n = 9
WhereSeen_Facebook  1              2 
WhereSeen_Instagram 1              5
WhereSeen_TV        1              9
Tenure              1 year or less 12

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    我认为您可以在group_by 之前添加filter(value != "")(假设值是字符串,空值只是“”)。

    所以你有:

    frequencies1 <- data %>%
      gather(variable, value,
        Age, 
        Gender, 
        Comparison,
        Tenure
        ) %>%
      filter(value != "") %<%
      group_by(variable, value) %>%
      summarise (n = n()) %>%
      mutate(freq = ((n / sum(n, na.rm = TRUE)) * 100))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      相关资源
      最近更新 更多