Suchen von Duplikaten in einer Liste, einschließlich Permutationen
Ich möchte feststellen, ob eine Liste doppelte Elemente enthält, während Permutationen als äquivalent betrachtet werden. Alle Vektoren sind gleich lang.
Was ist der effizienteste Weg (kürzeste Laufzeit), um dies zu erreichen?
## SAMPLE DATA
a <- c(1, 2, 3)
b <- c(4, 5, 6)
a.same <- c(3, 1, 2)
## BOTH OF THSE LISTS SHOULD BE FLAGGED AS HAVING DUPLICATES
myList1 <- list(a, b, a)
myList2 <- list(a, b, a.same)
# CHECK FOR DUPLICATES
anyDuplicated(myList1) > 0 # TRUE
anyDuplicated(myList2) > 0 # FALSE, but would like true.
Im Moment sortiere ich jedes Mitglied der Liste, bevor ich nach Duplikaten suche
anyDuplicated( lapply(myList2, sort) ) > 0
Ich frage mich, ob es eine effizientere Alternative gibt. Auch in der?duplicated
In der Dokumentation wird angezeigt, dass die Verwendung dieser Funktion für Listen möglicherweise langsam ist. Gibt es andere Funktionen, die besser für Listen geeignet sind?