Seleccionar filas equivalentes

Mi problema parece ser muy simple, pero no puedo resolverlo desde horas …

Tengo una matriz como esta:

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

Quiero seleccionar las filas que tienen la misma información, independientemente del orden de la columna. Por ejemplo row1 (1; 2) y row2 (2; 1). Entonces, quiero eliminarlos, excepto uno.

He escrito esta función, pero no funciona …

 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=nrow(x)) {break} else {i<-i+1} } x } f(data) 

¿Alguien podría darme una pista para esto?

Me gusta esto:

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

Tenga en cuenta que las filas de salida están ordenadas, por lo que, por ejemplo, una fila “sin coincidencia” como c(5, 1) en los datos originales aparecerá como c(1, 5) en la salida. Si, por el contrario, desea que las filas de salida sean como están en la entrada, puede hacer lo siguiente:

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