我希望确定一个列表是否包含任何重复元素,同时将排列视为等效。所有向量的长度都相等。
最有效的方法(运行时间最短)是什么?
我在想是否有更有效的替代方案。此外,在
最有效的方法(运行时间最短)是什么?
## 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
文档中指出:“对列表使用这个方法可能会很慢”。是否有其他更适合列表的函数?