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

如何统计数据集中两列组合后重复的行数?(R语言)

检查两列组合的重复项并统计数量(R语言)

你当前的代码存在两处关键错误,导致结果不可信:

  • 用单引号包裹了表达式,这让duplicated()处理的是一个字符串文本,而不是你数据里的两列组合
  • &&是用于单个逻辑值的判断运算符,处理向量应该用&,但这里根本不需要逻辑运算,直接传入两列组成的数据集即可

以下是正确的实现方法,按需选择:

基础R实现

统计所有重复出现的行数(即除第一次出现外,后续重复的次数总和)

sum(duplicated(Vehicles_Sub[, c("accident_index", "vehicles_reference")]))

统计有多少种不同的重复组合(即出现次数≥2的组合数)

# 先生成组合的频次表,再统计频次>1的组合数量
sum(table(Vehicles_Sub[, c("accident_index", "vehicles_reference")]) > 1)

tidyverse/dplyr实现(更直观,适合后续分析)

如果你习惯使用tidyverse生态的工具:

library(dplyr)

# 查看所有重复组合及其出现次数、重复次数
Vehicles_Sub %>%
  count(accident_index, vehicles_reference, name = "出现总次数") %>%
  filter(出现总次数 > 1) %>%
  mutate(重复次数 = 出现总次数 - 1)

# 直接统计所有重复行的总数(和基础R的sum(duplicated(...))结果一致)
Vehicles_Sub %>%
  add_count(accident_index, vehicles_reference) %>%
  filter(n > 1) %>%
  nrow()

说明:

  • 第一种基础R方法返回的是重复行的总数量(比如某组合出现3次,会被计入2次重复)
  • 如果只想知道有多少组不同的ID组合存在重复,用sum(table(...)) >1的方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 00:49:56