R中相交和匹配之间的差异

古塔姆

我试图了解RmatchintersectR之间的区别。两者都以不同的格式返回相同的输出。两者之间有功能上的区别吗?

match(names(set1), names(set2))
#  [1] NA  1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 11

intersect(names(set1), names(set2))
# [1] "Year"     "ID"
李哲源

match(a, b)返回的整数向量length(a)i第-个元素给出位置j,使a[i] == b[j]NA默认情况下为no_match生成(尽管您可以自定义)。

如果要获得与相同的结果intersect(a, b),请使用以下任一方法:

b[na.omit(match(a, b))]
a[na.omit(match(b, a))]

例子

a <- 1:5
b <- 2:6

b[na.omit(match(a, b))]
# [1] 2 3 4 5

a[na.omit(match(b, a))]
# [1] 2 3 4 5

我只是想知道两者之间是否还有其他区别。我自己就能理解结果。

然后我们阅读源代码

intersect
#function (x, y) 
#{
#    y <- as.vector(y)
#    unique(y[match(as.vector(x), y, 0L)])
#}

原来intersect是用match来写的

哈哈,好像我忘unique了外面的东西。Em,通过设置nomatch = 0L我们也可以摆脱na.omit好吧,R core比我的猜测更有效。


跟进

我们也可以使用

a[a %in% b]  ## need a `unique`, too
b[b %in% a]  ## need a `unique`, too

但是,请继续阅读?match在“详细信息”中,我们可以看到如何"%in%"定义:

"%in%" <- function(x, table) match(x, table, nomatch = 0) > 0

因此,是的,所有内容都是使用编写的match

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R 中 %% 和 % 之间的差异

来自分类Dev

R中的修复和编辑之间的差异

来自分类Dev

了解python中字典的相交和差异

来自分类Dev

[[]]和[]之间的R差异

来自分类Dev

R中sum(),length(which())和nrow()之间的差异

来自分类Dev

R中“ glm”和“ optim”之间参数的差异

来自分类Dev

SIL# 规范中 R 和 HR 之间的差异

来自分类Dev

Bash中$ *和$ @之间的差异

来自分类Dev

如何在R中接收相交的SpatialLines的差异?

来自分类Dev

ARIMA在R和Stata之间的主要差异

来自分类Dev

r值和l值之间的差异

来自分类Dev

ARIMA在R和Stata之间的主要差异

来自分类Dev

Pyranges中重叠和相交方法之间的区别

来自分类Dev

Powershell中getElementById和getElementsByName之间的差异

来自分类Dev

VTK中顶点和点之间的差异

来自分类Dev

Clojure中IFn和Fn之间的差异

来自分类Dev

mahout中的StandardNaiveBayesClassifier和ComplementaryNaiveBayesClassifier之间的差异

来自分类Dev

Clojure中类型和类之间的差异

来自分类Dev

网址中%20和%2之间的差异

来自分类Dev

Twig中{%include''%}和{{include('')}}之间的差异

来自分类Dev

组装中(sp)和[sp]之间的差异

来自分类Dev

编码中0和-0之间的差异

来自分类Dev

Clojure中((3)和3之间的差异

来自分类Dev

mahout中的StandardNaiveBayesClassifier和ComplementaryNaiveBayesClassifier之间的差异

来自分类Dev

Twig中{%include''%}和{{include('')}}之间的差异

来自分类Dev

数组中0和'0'之间的差异

来自分类Dev

Clojure中IFn和Fn之间的差异

来自分类Dev

JavaScript 和 ActionScript 中的“this”之间的差异

来自分类Dev

读取表,差异和相交错误