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

R语言按年龄组及全量计算病例占比并新增为dataframe列的方法

解决方案(R语言)

你提供的数据已经默认按Age group分组,直接用dplyr的mutate函数就能完成两列的计算:

library(dplyr)

# 计算新增列
Cm_result <- Cm %>%
  mutate(
    # 组内占比:当前行Cases / 所属Age group的总Cases
    Cases1 = Cases / sum(Cases, na.rm = TRUE),
    # 全量占比:当前行Cases / 所有行的总Cases,加.by = NULL取消分组限制
    Cases2 = Cases / sum(Cases, na.rm = TRUE, .by = NULL)
  )

# 查看结果
print(Cm_result)

如果你使用的dplyr版本低于1.1.0不支持.by参数,替换为下面的写法即可:

Cm_result <- Cm %>%
  mutate(Cases1 = Cases / sum(Cases, na.rm = TRUE)) %>%
  ungroup() %>%
  mutate(Cases2 = Cases / sum(Cases, na.rm = TRUE))

计算后同一个Age group分组内所有行的Cases1加总等于1,全表所有行的Cases2加总等于1,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 04:24:05