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

R语言分组计算序列净留存占比 lead函数应用问题

问题核心

你之前用lead不符合需求的原因是lead只能提取相邻下一行的单个值,而你需要的是同分组内所有序号大于当前行的计数总和,用反向累加即可高效实现,不需要额外安装第三方包。

实现代码

library(dplyr)

df <- df %>%
  group_by(tier_1) %>%
  # 分组内按序号升序排列,保证顺序正确
  arrange(sequence_number, .by_group = TRUE) %>%
  mutate(
    # 计算所有序号更大的计数总和:反向累加后减去当前行计数
    sum_larger = rev(cumsum(rev(count_of_sequence_numbers))) - count_of_sequence_numbers,
    # 计算净计数
    net_count = count_of_sequence_numbers - sum_larger,
    # 同组内用净计数计算占比
    percent = net_count / sum(net_count)
  ) %>%
  # 可根据需要删除中间辅助列
  select(-sum_larger)

逻辑验证

以你示例中Organic Search分组为例:

  • sequence_number=1的count_of_sequence_numbers为1176,后面序号2到10的计数总和为460+119+41+21+5+8+6+2+1=663,净计数为1176-663=513,和代码计算结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 19:36:04