select相应的行

我的问题似乎很简单,但我无法解决,因为小时…

我有这样一个matrix:

[,1] [,2] [1,] 1 2 [2,] 2 1 [3,] 2 1 [4,] 3 4 

我想select具有相同信息的行,而不考虑列的顺序。 例如row1(1; 2)和row2(2; 1)。 那么,我想删除它们,除了一个。

我已经写了这个function,但它不工作…

 f<-function(x){ i<-1 repeat { a<-c() a<-c(which(x[i,1]==x[,2] & x[i,2]==x[,1])) if(!is.null(a)) {x<-x[-c(a),]} if(i>=nrow(x)) {break} else {i<-i+1} } x } f(data) 

有人可以给我一个提示呢?

喜欢这个:

 unique(t(apply(mat, 1, sort))) 

请注意,输出行是sorting的,例如原始数据中的“不匹配”行(如c(5, 1)将在输出中显示为c(1, 5) 。 如果您希望输出行与input行一样,那么您可以这样做:

 mat[!duplicated(t(apply(mat, 1, sort))), ]