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 值
我有一个包含 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 值