Выберите эквивалентные строки

Моя проблема кажется очень простой, но я не могу ее решить с утра …

У меня есть такая matrix:

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

Я хочу выбрать строки, которые имеют одинаковую информацию, независимо от порядка столбца. Например, строка 1 (1; 2) и строка2 (2; 1). Затем я хочу удалить их, кроме одного.

Я написал эту функцию, но она не работает …

 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) 

Кто-нибудь может дать мне намек на это?

Как это:

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

Обратите внимание, что выходные строки сортируются, поэтому, например c(5, 1) в исходных данных будет отображаться «несогласованная» строка типа c(5, 1) в виде c(1, 5) . Если вместо этого вы хотите, чтобы выходные строки были такими же, как на входе, вы можете сделать:

 mat[!duplicated(t(apply(mat, 1, sort))), ] 
  • Использование R для отображения всех файлов с указанным расширением
  • R создать идентификатор внутри группы
  • Как вставить элементы в вектор?
  • Перемещение столбцов в data.frame () без повторного набора
  • Глобальные и локальные переменные в R
  • Как узнать R как язык программирования?
  • Как вы конвертируете даты / время из одного часового пояса в другой в R?
  • Открытие всех файлов в папке и применение функции
  • как вы отправляете письмо от R
  • В R, как получить имя объекта после его отправки в функцию?
  • Извлечение строк для первого вхождения переменной в фрейм данных
  • Давайте будем гением компьютера.