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

如何在R语言中筛选并排序多列重复的data.frame行?

筛选并排序R语言data.frame中完全重复的行

原始数据

file = read.table(text = "sex age num          
M 32 5
F 31 2
M 91 2
M 30 1
M 23 1
F 19 1
F 31 2
F 21 2
M 32 5
F 65 3
M 24 5", header = T, sep = "")

需求

筛选出sex、age、num三列取值完全重复的所有行,并按重复组排序,得到如下结果:

result = read.table(text = "sex age num          
M 32 5
M 32 5
F 31 2
F 31 2", header = T, sep = "")

解决方案(使用dplyr)

通过分组筛选直接保留所有重复组的行,无需单独组合distinct或duplicated:

library(dplyr)

result <- file %>%
  group_by(sex, age, num) %>%
  filter(n() >= 2) %>%  # 保留包含至少2行的重复组
  arrange(sex, age, num) %>%  # 按重复组排序
  ungroup()

# 输出结果
print(result)

代码说明

  • group_by(sex, age, num):将三列取值完全一致的行归为同一组
  • filter(n() >= 2):筛选出存在重复的组(行数≥2),保留组内全部行
  • arrange(sex, age, num):按分组列排序,确保同一重复组的行连续排列
  • ungroup():取消分组,还原为普通data.frame结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 06:22:06