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

同一Group分组下去除Amplitude列重复值的R实现方案

分组去重DataFrame指定列的实用方案

最推荐的dplyr实现

用dplyr的分组+去重组合,代码简洁易读,直接搞定需求:

library(dplyr)

result_df <- df %>%
  group_by(Group) %>%
  distinct(Amplitude, .keep_all = FALSE) %>%
  arrange(Group, Amplitude)
  • group_by(Group):把数据按Group拆分成各自的分组
  • distinct(Amplitude, .keep_all = FALSE):在每个分组里只保留唯一的Amplitude值,并且只留Group和Amplitude这两列(自动丢掉Origin)
  • arrange是可选操作,仅为了让结果和示例顺序完全匹配,不需要可直接删除

原生R实现(无需额外包)

不想加载第三方包的话,用原生R的拆分+合并逻辑也能实现:

result_base <- do.call(rbind, lapply(split(df, df$Group), function(x) {
  data.frame(Group = x$Group[1], Amplitude = unique(x$Amplitude))
}))
# 排序并重置行名,对齐示例格式
result_base <- result_base[order(result_base$Group, result_base$Amplitude), ]
rownames(result_base) <- NULL

大数据量首选:data.table

如果处理的是超大数据集,data.table的执行效率会更有优势:

library(data.table)

dt <- as.data.table(df)
result_dt <- dt[, .(Amplitude = unique(Amplitude)), by = Group][order(Group, Amplitude)]

以上三种方法最终输出的结果,都和你给出的desired_df完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:35:10