R:验证任何两个字符向量是否完全相关

时间:2017-06-28 16:51:57

标签: r

我正在寻找一种方法来验证几个中的任何两个字符向量是否完全相关,这意味着对于一个向量的每个可能值,另一个向量中的对应值总是相同的,如下例所示: / 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")

我希望能够知道ab完全相关。

请注意,这些矢量可能会更长,我们可以有更多的矢量。

1 个答案:

答案 0 :(得分:2)

我们可以在identical

上使用match
identical( match(a, unique(a)), match(b, unique(b)))
#[1] TRUE

如果有多个vector,请将它们放在list中,循环浏览list,将matchReduce放到一个vector逻辑allall(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"