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

R语言如何统计dataframe中完全重复行的出现次数

解决方案

你当前使用的duplicated(df)只能筛选出重复出现的行,无法直接统计每类重复行的出现次数,以下是3种适配你70万行级数据量的可行方案:

1. 基础R实现(无需安装额外包)

# 按所有列分组统计每行出现次数
duplicates <- aggregate(. ~ ., data = df, FUN = length)
# 重命名计数列为times
colnames(duplicates)[ncol(duplicates)] <- "times"
# 过滤仅保留出现次数≥2的重复行
duplicates <- duplicates[duplicates$times >= 2, ]

2. dplyr实现(代码更易读)

library(dplyr)
duplicates <- df %>%
  # 按全部列分组
  group_by(across(everything())) %>%
  # 统计每组出现次数
  summarise(times = n(), .groups = "drop") %>%
  # 筛选仅保留重复行
  filter(times >= 2)

3. data.table实现(大数据量下性能最优)

对于你近70万行的数据集,该方案运行速度最快:

library(data.table)
# 将数据框转为data.table格式
setDT(df)
# 按所有列分组计数,过滤重复行
duplicates <- df[, .(times = .N), by = names(df)][times >= 2]

以上三种方案跑你给出的示例数据,都能得到你预期的输出结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 02:30:03