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

如何使用Dplyr统计分组内最高频次值并处理并列权重?

实现代码

首先加载dplyr包后运行如下逻辑即可:

library(dplyr)

result <- data %>%
  # 统计每个用户下各source的出现频次
  count(USER, source, name = "freq") %>%
  # 按用户分组,仅保留频次最高的source记录
  group_by(USER) %>%
  filter(freq == max(freq)) %>%
  # 计算权重:并列最高的项均分权重1
  mutate(weight = 1 / n()) %>%
  # 清除中间字段、取消分组得到最终结果
  ungroup() %>%
  select(USER, source, weight)
逻辑说明

该代码适配任意数量的并列最高频场景:

  • 单个最高频source时,weight自动赋值为1
  • N个source并列最高时,每个source的weight自动赋值为1/N,和示例中2个并列时赋值0.5的逻辑完全匹配
  • 输出结果的字段顺序、数值和需求给出的预期输出完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:24:02