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

R语言分组汇总时保留组内首个因子去重方法问询

解决方案

针对你的需求,分两种场景给出修改后的代码:

场景1:按因子优先级保留(优先取'before',其次'during',最后'after')

因为你的Event是因子类型,利用因子的水平顺序特性,直接取组内因子水平最靠前的那个值即可。如果Event的水平顺序已经是before < during < after,用以下代码:

group_by(eventID) %>%
  summarize(event = min(Event))

如果因子水平顺序不符合优先级,先手动指定水平再分组:

df %>%
  mutate(Event = factor(Event, levels = c("before", "during", "after"))) %>%
  group_by(eventID) %>%
  summarize(event = min(Event))

场景2:按组内数据出现顺序保留首个因子

如果需要保留每组数据中第一个出现的Event值,用first()函数:

group_by(eventID) %>%
  summarize(event = first(Event))

说明

你原代码中paste(unique(Event))会把组内所有唯一的Event拼接成字符串,无法实现只保留单个值的需求。上面两种方法都能保证每个eventID对应一行结果,且仅保留你需要的单个因子值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:54:16