在R语言中如何仅保留dataframe中整行完全重复的记录?
整行完全重复记录提取方案
以下提供R和Python两种主流数据处理场景的实现方式,均默认对全列做等值匹配,不需要指定单独的标识变量:
R语言实现
基础包原生duplicated函数默认就会对整行所有列做重复判断,返回逻辑向量,首次出现的行返回FALSE,后续重复出现的行返回TRUE:
# 仅提取重复出现的后续条目,匹配你统计到的233条重复行需求 # 假设原数据框名为df duplicate_df <- df[duplicated(df), ]
如果需要保留所有出现过重复的行(即某行只要有重复,就把它和所有重复副本全部保留,比如某行共出现3次则3条全部留下),可以结合反向重复判断实现:
duplicate_df_all <- df[duplicated(df) | duplicated(df, fromLast = TRUE), ]
如果习惯用dplyr语法,也可以通过统计整行出现频次的方式实现:
library(dplyr) duplicate_df <- df %>% add_count(across(everything())) %>% filter(n >= 2) %>% select(-n)
Python实现
pandas的duplicated方法逻辑和R一致,默认对全列做重复匹配:
import pandas as pd # 仅提取重复出现的后续条目,匹配233条重复行需求 # 假设原数据框名为df duplicate_df = df[df.duplicated()] # 保留所有出现过重复的行(包含首次出现的条目) duplicate_df_all = df[df.duplicated() | df.duplicated(keep='last')]
内容的提问来源于stack exchange,提问作者zwag
相关产品推荐
相关产品推荐

