R中的重复数据删除列对

Deduping Column pairs in R

我有一个包含 7 列的数据框,我想记录前两列中具有相同信息的记录,即使它们的顺序相反。

这是我的 df 的一个片段

 zip1  zip2       APP       PCR       SCR       APJ       PJR
1 01701 01701 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
2 01701 01702 0.9887567 0.9898379 0.9811615 0.9993856 0.9842659
3 01701 01703 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
4 01701 01704 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
5 01704 01701 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000

我知道如何使用 unique,但这里的转折点是我想将 zip1 = a 和 zip2 = b 的实例与 zip1 = b 和 zip2 = a 相同。所以我基本上只想要这两个实例的一个记录。所以例如我只想要第 4 列而不是第 5 列 有什么建议吗?

谢谢, 本

首先创建一个新向量,它标识具有特定 zip 对的行,但不根据顺序进行区分:

zipUp<-paste(pmin(df$zip1,df$zip2),pmax(df$zip1,df$zip2))

现在在该向量中找到重复项,并从原始数据框中丢弃它们。

dups<-duplicated(zipUp)

newdf<-df[!dups,]

我假设前两列不包含 NA。如果他们这样做,您将需要调整 pmin、pmax 调用以保留每对的任何非 NA 值