Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R数据帧中重复行的特殊删除_R_Dataframe_Duplicates - Fatal编程技术网

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
数据
df
df[!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)