r - 从数据框中成对的重复删除

标签 r dataframe duplicates

这个问题在这里已经有了答案:





Select equivalent rows [A-B & B-A] [duplicate]

(1 个回答)


4年前关闭。




这似乎是一个简单的问题,但我似乎无法弄清楚。如果两列具有相同的值,我想从数据帧 (df) 中删除重复项,即使这些值在 中逆序 .我的意思是,假设您有以下数据框:

a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c('A','B','B','C','A','A','B','B')
df <-data.frame(a,b)

  a b
1 A A
2 A B
3 A B
4 B C
5 B A
6 B A
7 C B
8 C B

如果我现在删除重复项,我会得到以下数据框:
df[duplicated(df),]

  a b
3 A B
6 B A
8 C B

但是,我还想删除此数据框中的第 6 行,因为“A”、“B”与“B”、“A”相同。我怎样才能自动执行此操作?

理想情况下,我可以指定要比较的两列,因为数据框可能有不同的列并且可能非常大。

谢谢!

最佳答案

一种解决方案是先对 df 的每一行进行排序:

for (i in 1:nrow(df))
{
    df[i, ] = sort(df[i, ])
}
df

a b
1 A A
2 A B
3 A B
4 B C
5 A B
6 A B
7 B C
8 B C

在这一点上,它只是删除重复元素的问题:
df = df[!duplicated(df),]
df
  a b 
1 A A
2 A B
4 B C

正如评论中提到的 thelatemail ,您的代码实际上保留了重复项。您需要使用 !duplicated删除它们。

关于r - 从数据框中成对的重复删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25297812/

相关文章:

python - 消除列表的重复项 (Python)

javascript - 如何使用 Javascript 控制克隆的 <div> 的 css?

使用 tidymodels 运行多个回归模型

r - 是否有用于模块化报告生成的\SweaveInput{} 的 R markdown 模拟?

r - 使用 matlab 计算多变量情况下的偏正态分布

r - 无法在 MacOS Mojave 和 R 3.5.2 上加载 rJava

python - 生成过滤的二元笛卡尔积

python - Pandas 数据框 : swap column headings by index

python - 在没有 pdfkit 的情况下将 Pandas DataFrame 保存为 PDF 文件格式

java - Java 中需要方法仅返回匹配的数字