比较两个矢量,若整数在矢量中只出现一次,则只匹配一次

  • 本文关键字:一次 整数 两个 比较 r
  • 更新时间 :
  • 英文 :


我有两个向量要比较。我尝试过match((和%in%,但它没有给我想要的结果。解决方案应在R基础中。

输入

a = c(1,2,3,4,5)
b = c(1,1,2)

经过测试的解决方案

b %in% a
TRUE TRUE TRUE

然而,我希望它说TRUEFALSETRUE,因为";1〃;在a.中只出现一次

在R基地有什么办法做到这一点吗?

1(追加"1〃;对于每个条目的第一次出现;2〃;到第二个,依此类推。然后使用这些。

f <- function(x) paste(x, seq_along(x))
ave(b, b, FUN = f) %in% ave(a, a, FUN = f)
## [1]  TRUE FALSE  TRUE

2(示例中的a中没有重复,如果是这种情况,则另一种方法是检查b的每个元素是否在a中,但如果是重复,则拒绝它。

(b %in% a) & !duplicated(b)
## [1]  TRUE FALSE  TRUE

备注

a <- c(1, 2, 3, 4, 5);  b <- c(1, 1, 2)  # inputs

相关内容

最新更新