在第二个向量中找到一个值向量的所有匹配项的所有位置
Find all positions of all matches of one vector of values in second vector
我需要在我的向量中找到与另一个向量的任何值相对应的所有位置:
needles <- c(4, 3, 9)
hay <- c(2, 3, 4, 5, 3, 7)
mymatches(needles, hay) # should give vector: 2 3 5
是否有任何预定义函数允许执行此操作?
这应该有效:
which(hay %in% needles) # 2 3 5
R 已经有 match()
function / %in%
operator,它们是相同的东西,而且它们是矢量化的。您的解决方案:
which(!is.na(match(hay, needles)))
[1] 2 3 5
或@jalapic 显示的更短语法 which(hay %in% needles)
。
使用 match()
,如果您愿意,您可以看到每个位置匹配了哪个特定值...
match(hay, needles)
[1] NA 2 1 NA 2 NA
或者只是匹配发生位置的逻辑向量:
!is.na(match(hay, needles))
[1] FALSE TRUE TRUE FALSE TRUE FALSE
我需要在我的向量中找到与另一个向量的任何值相对应的所有位置:
needles <- c(4, 3, 9)
hay <- c(2, 3, 4, 5, 3, 7)
mymatches(needles, hay) # should give vector: 2 3 5
是否有任何预定义函数允许执行此操作?
这应该有效:
which(hay %in% needles) # 2 3 5
R 已经有 match()
function / %in%
operator,它们是相同的东西,而且它们是矢量化的。您的解决方案:
which(!is.na(match(hay, needles)))
[1] 2 3 5
或@jalapic 显示的更短语法 which(hay %in% needles)
。
使用 match()
,如果您愿意,您可以看到每个位置匹配了哪个特定值...
match(hay, needles)
[1] NA 2 1 NA 2 NA
或者只是匹配发生位置的逻辑向量:
!is.na(match(hay, needles))
[1] FALSE TRUE TRUE FALSE TRUE FALSE