我正在寻找一种方法来验证几个中的任何两个字符向量是否完全相关,这意味着对于一个向量的每个可能值,另一个向量中的对应值总是相同的,如下例所示: / p>
a <- c("A", "A", "A", "A", "B", "C", "D", "D")
b <- c("w", "w", "w", "w", "5", "x", "2", "2")
c <- c("A", "A", "A", "d", "B", "C", "D", "D")
我希望能够知道a
和b
完全相关。
请注意,这些矢量可能会更长,我们可以有更多的矢量。
答案 0 :(得分:2)
我们可以在identical
match
identical( match(a, unique(a)), match(b, unique(b)))
#[1] TRUE
如果有多个vector
,请将它们放在list
中,循环浏览list
,将match
,Reduce
放到一个vector
逻辑all
和all(Reduce(`==`, lapply(list(a, b), function(x) match(x, unique(x)))))
#[1] TRUE
,我们检查所有值是否为TRUE
combn
如果我们正在寻找向量的成对等式,请使用res <- combn(c('a', 'b', 'c'), 2, FUN = function(x)
all(Reduce(`==`, lapply(mget(x, envir = .GlobalEnv), function(y) match(y, unique(y))))))
names(res) <- combn(c('a', 'b', 'c'), 2, FUN = paste, collapse="_")
res
# a_b a_c b_c
# TRUE FALSE FALSE
"keyword USE 1 or more keywords"