You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R dplyr实现长格式因子数据的计数、总计与百分比汇总

高效生成调查数据汇总表(Tidyverse方案)

直接用dplyr链式操作就能一次性完成所有计算,无需拆分合并数据框,代码如下:

library(tidyverse)

# 生成目标汇总表
summary_df <- df %>%
  # 可选:过滤未作答的空值,按需调整
  filter(!is.na(Response)) %>%
  # 按问题+响应选项分组
  group_by(Question, Response) %>%
  # 统计每个选项的计数,保留问题分组
  summarise(Count = n(), .groups = "drop_last") %>%
  # 计算问题总样本数与选项占比
  mutate(
    Total_of_Q = sum(Count),
    Percent_C_of_Total = round((Count / Total_of_Q) * 100, 2) # 保留两位小数,可修改
  ) %>%
  # 取消分组,得到常规数据框
  ungroup()

代码说明:

  • filter(!is.na(Response)):如果数据存在未作答的空值,这一步可以过滤掉,不需要则直接删除该行。
  • group_by(Question, Response):精准定位每个问题下的不同响应选项,为计数做准备。
  • summarise(Count = n(), .groups = "drop_last"):统计每个选项的出现次数,.groups = "drop_last"自动移除Response分组,仅保留Question分组,方便后续计算该问题的总样本数。
  • mutate():在Question分组内,用sum(Count)得到该问题的总样本数Total_of_Q,再通过计数除以总数得到百分比,round()用于控制小数位数,提升数据可读性。
  • ungroup():最终取消分组,避免后续操作受分组逻辑影响。

这个方案全程链式处理,数据仅经过一次流转,效率远高于拆分合并的方式,7万多行的数据集可以快速完成计算。

内容的提问来源于stack exchange,提问作者Peter King

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 19:06:25