R中两个向量之间的测试匹配和顺序

时间:2014-04-30 16:05:57

标签: r match

我想测试两个向量之间的匹配和顺序。我知道匹配功能;是否有重叠同时评估订单?例如:

x <- c("a", "b", "c")
y <- c("b", "a", "c")   
x %in% y    

有完美的匹配,但排序不正确。关于如何识别的想法?感谢。

1 个答案:

答案 0 :(得分:3)

test_match_order <- function(x,y) {

if (all(x==y)) print('Perfect match in same order')

if (!all(x==y) && all(sort(x)==sort(y))) print('Perfect match in wrong order')

if (!all(x==y) && !all(sort(x)==sort(y))) print('No match')
}

test_match_order(x,y)

[1] "Perfect match in wrong order"

以下是基于我上面原始评论的另一个版本,下面的@alexis_laz改进了该功能,使该功能更加强大:

test_match_order2 <- function(x,y) {

if (isTRUE(all.equal(x,y))) print('Perfect match in same order')

if (!isTRUE(all.equal(x,y)) && isTRUE(all.equal(sort(x),sort(y)))) print('Perfect match in wrong order')

if (!isTRUE(all.equal(x,y)) && !isTRUE(all.equal(sort(x),sort(y)))) print('No match')
}