R数据帧中重复行的特殊删除
假设我有一个数据帧R数据帧中重复行的特殊删除,r,dataframe,duplicates,R,Dataframe,Duplicates,假设我有一个数据帧dfas: df<- data.frame(id1=c('A','B','C','D','P'), id2=c('P','H','Q','S','A'),weight=c(3,4,2,7,3)) id1 id2 weight 1 A P 3 2 B H 4 3 C Q 2 4 D S 7 5 P A 3 但这还不够 我们可以使用pmin/pmax df[!duplicated
df
as:
df<- data.frame(id1=c('A','B','C','D','P'), id2=c('P','H','Q','S','A'),weight=c(3,4,2,7,3))
id1 id2 weight
1 A P 3
2 B H 4
3 C Q 2
4 D S 7
5 P A 3
但这还不够 我们可以使用
pmin/pmax
df[!duplicated(cbind(pmin(df$id1, df$id2), pmax(df$id1, df$id2))),]
# id1 id2 weight
#1 A P 3
#2 B H 4
#3 C Q 2
#4 D S 7
数据
dfdf[!duplicated(t(apply(df,1,sort)),]
,尽管可能有一个更简单的选项
df[!duplicated(cbind(pmin(df$id1, df$id2), pmax(df$id1, df$id2))),]
# id1 id2 weight
#1 A P 3
#2 B H 4
#3 C Q 2
#4 D S 7
df<- data.frame(id1=c('A','B','C','D','P'),
id2=c('P','H','Q','S','A'),weight=c(3,4,2,7,3), stringsAsFactors=FALSE)