Вы можете найти все общие элементы с:
l <- list(vec_a, vec_b, vec_c, vec_d, vec_e, vec_f)
( common <- Reduce(intersect, l) )
# [1] "Z" "d" "5" "P" "y" "4" "R" "6" "w" "u" "N" "b"
(что напоминает, что вы, возможно, захотите, чтобы они хранились в list
для начала, а не в отдельных векторах, но это, как всегда, зависит от вашего общего проекта / приложения.)
Чтобы узнать, что у каждого вектора отличается от этого общего списка:
lapply(l, setdiff, common)
# [[1]]
# [1] "A" "T"
# [[2]]
# [1] "B" "T"
# [[3]]
# [1] "A" "T"
# [[4]]
# [1] "A" "x" "W"
# [[5]]
# [1] "A" "T"
# [[6]]
# [1] "A" "T"
(В этом примере было бы лучше, если бы элементы list
были названы так, чтобы вы знали, что было каким ... поэтому вы можете решить эту проблему при создании списка l
. )
Вы можете найти, какие пары идентичны с:
outer(seq_along(l), seq_along(l),
function(a,b) mapply(function(A,B) identical(l[[A]], l[[B]]), a, b))
# [,1] [,2] [,3] [,4] [,5] [,6]
# [1,] TRUE FALSE TRUE FALSE TRUE TRUE
# [2,] FALSE TRUE FALSE FALSE FALSE FALSE
# [3,] TRUE FALSE TRUE FALSE TRUE TRUE
# [4,] FALSE FALSE FALSE TRUE FALSE FALSE
# [5,] TRUE FALSE TRUE FALSE TRUE TRUE
# [6,] TRUE FALSE TRUE FALSE TRUE TRUE