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

如何使用dplyr计算R语言数据集各因子分组内的数值占比

解决代码

首先确认你要的占比是按国家(country)分组,计算当前行value占所属国家所有value总和的比例,实现代码如下:

# 加载dplyr包
library(dplyr)

# 构造示例数据集
data <- data.frame(
  team = c("a", "a", "a", "b", "b", "b", "c", "c", "c"),
  country = c("usa","uk",
              "spain","usa","uk","spain","usa","uk","spain"),
  value = c(40, 20, 10, 50, 30, 35, 50, 60, 25)
)

# 计算得到目标结果
desired_result <- data %>%
  group_by(country) %>%
  mutate(prop = value / sum(value)) %>%
  ungroup()

逻辑验证

你给出的desired数据集的prop列数值和按上述逻辑计算的结果完全匹配:

  • usa分组总value = 40 + 50 + 50 = 140,对应a队usa占比40/140≈0.2857,与预期一致
  • uk分组总value = 20 + 30 + 60 = 110,对应a队uk占比20/110≈0.1818,与预期一致
  • spain分组总value = 10 +35 +25 =70,对应a队spain占比10/70≈0.1429,与预期一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:21:01