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

基于co列去重并保留factor值更大行的R语言数据处理需求

按co去重并保留factor最大值的行

样本数据集

df <- data.frame (co = c(11.5,1.3,7.8,2.3,2.3,3.1,5.7,5.7,9.3), 
                  factor = c(NA,NA,NA,3,NA,5,NA,6,0.3), 
                  condition = c (NA,NA,NA,12.3,NA,13.5,NA,18.7,NA))

当前尝试及问题

使用distinct()按co去重的代码:

df.2 <- distinct(df, co, .keep_all = TRUE)

得到的结果中,co=5.7的行保留了factor为NA的记录,不符合需求:

co factor condition
1 11.5     NA        NA
2  1.3     NA        NA
3  7.8     NA        NA
4  2.3    3.0      12.3
5  3.1    5.0      13.5
6  5.7     NA        NA
7  9.3    0.3        NA

期望结果

需要对每个重复的co值,保留factor值最大的行,目标输出:

co factor condition
1 11.5     NA        NA
2  1.3     NA        NA
3  7.8     NA        NA
4  2.3    3.0      12.3
5  3.1    5.0      13.5
6  5.7    6.0      18.7
7  9.3    0.3        NA

解决方案

使用dplyr的分组排序+取首行的方式实现:

library(dplyr)

df.2 <- df %>%
  group_by(co) %>%          # 按co分组
  arrange(desc(factor), .by_group = TRUE) %>%  # 组内按factor降序排列,最大值排第一
  slice(1) %>%              # 提取每组第一行
  ungroup()                 # 取消分组

这样处理后,每个co对应的行都会保留factor值最大的那条记录,完美匹配期望结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:27:21