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

如何在R中按种族/族裔分组计算得分>1的学生占比?

按种族/族裔分组计算Grade>1学生的占比

示例数据集

IDGradeRace/Ethnicity
10White
22Asian
32Hispanic
40Asian
53Black
61White
72Hispanic
81Black

需求:按Race/Ethnicity分组,计算每组中Grade>1的学生占该组总人数的百分比,要求每个种族/族裔仅显示一行结果。

你之前的代码使用ave会为原数据的每一行生成对应组的百分比,但未做聚合去重,因此导致每个种族的行重复出现。

正确解决方案

使用dplyr的group_by + summarize完成分组聚合,这是处理这类分组统计需求的标准方式:

library(dplyr)
library(scales)

data %>%
  group_by(`Race/Ethnicity`) %>%
  summarize(
    Percent = label_percent()(mean(Grade > 1))
  )

代码说明

  • group_by(Race/Ethnicity):指定按种族/族裔字段分组
  • summarize():对每个分组执行聚合计算,最终每个分组仅保留一行结果
  • mean(Grade > 1):Grade>1生成逻辑向量,mean()会自动将TRUE转为1、FALSE转为0,计算结果即为该组满足条件的学生占比
  • label_percent():将比例数值转换为带百分号的字符串格式

输出结果

Race/EthnicityPercent
White0%
Asian50%
Hispanic100%
Black50%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:40:30