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

R语言分组计算赛事粉丝占比:分母求和难题

问题解决

你的代码存在两个关键错误,修正后即可实现需求:

错误分析

  1. 列名误用:数据框中存储粉丝数的列是number,但你代码里写的是n,导致无法正确取值
  2. 分母逻辑错误:game==2+game==1的运算顺序是先将game==1转为布尔值(1或0)后加2,再判断game是否等于该结果,完全不是你想要的“赛事1+赛事2粉丝数求和”的逻辑

正确代码写法

写法一(简洁版,利用每组仅含game1和game2各一行的特点)

soccer %>%
  group_by(A) %>%
  summarise(ratio = (number[game == 1] / sum(number)) * 100)

写法二(明确指定game1和game2的数值相加)

soccer %>%
  group_by(A) %>%
  summarise(ratio = (number[game == 1] / (number[game == 1] + number[game == 2])) * 100)

写法三(更严谨,适配组内可能有重复game的情况)

如果后续数据中同一组可能出现多个game1或game2的记录,可以先分别求和再计算比例:

soccer %>%
  group_by(A) %>%
  summarise(
    game1_total = sum(number[game == 1]),
    total_fans = sum(number),
    ratio = (game1_total / total_fans) * 100
  ) %>%
  select(A, ratio) # 可选,仅保留需要的列

运行后会得到每个分组下赛事1粉丝数占总数的百分比结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:40:17