Поиск дубликатов в списке, включая перестановки

Я хотел бы определить, содержит ли список какие-либо дубликаты элементов, рассматривая перестановки как эквивалентные. Все векторы имеют одинаковую длину.

Каков наиболее эффективный способ (самое короткое время работы) для достижения этой цели?

## 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. 

Сейчас я прибегаю к сортировке каждого члена списка перед проверкой на наличие дубликатов.

anyDuplicated( lapply(myList2, sort) ) > 0

Мне интересно, есть ли более эффективная альтернатива. Кроме того, в?duplicated В документации указано, что «Использование этого для списков потенциально медленное» Есть ли другие функции, более подходящие для списков?

Ответы на вопрос(3)

Ваш ответ на вопрос