У меня есть вопрос, касающийся удаления дубликатов после сортировки в кортеже в R.Удалить дубликаты кортежей после сортировки кортеж в R
Скажем, у меня есть dataframe значений
df<-cbind(c(1,2,7,8,5,1),c(5,6,3,4,1,8),c(1.2,1,-.5,5,1.2,1))
а и б
a=df[,1]
b=df[,2]
temp<-cbind(a,b)
То, что я делаю, является уникальным на основе отсортированного кортежа. Например, я хочу сохранить a = 1,2,7,8,1 и b = 5,6,3,4,8 с удаленной записью a [5] и b [5]. Это в основном для определения взаимодействия между двумя объектами. 1 против 5, 2 против 6 и т. Д., Но 5 против 1 совпадает с 1 против 5, поэтому я хочу удалить его.
Маршрут, который я начал принимать, был следующим. Я создал функцию, которая сортирует каждый элемент и возвращает результаты обратно в вектор как таковой.
sortme<-function(i){sort(temp[i,])}
sorted<-t(sapply(1:nrow(temp),sortme))
и получили следующие результаты
a b
[1,] 1 5
[2,] 2 6
[3,] 3 7
[4,] 4 8
[5,] 1 5
[6,] 1 8
Я тогда уникальный отсортированном результата
unique(sorted)
который дает
a b
[1,] 1 5
[2,] 2 6
[3,] 3 7
[4,] 4 8
[5,] 1 8
я затем использовать! Дублируется, чтобы получить список истинных/ложных результатов, которые я могу используйте в моем исходном наборе данных, чтобы вытащить значения из другого отдельного столбца.
T_F<-!duplicated(sorted)
final_df<-df[T_F,]
То, что я хочу знать, если я буду об этом правильном пути для очень большого набора данных, или если есть встроенная функция, чтобы сделать это уже.
Благодарю вас. Я не думал об этом. – doggysaywhat