如何在R中找到矢量的位置与其他矢量相比较

时间:2015-05-21 16:18:58

标签: r

我知道这似乎微不足道,但假设我有一个向量v,使得:

v <- 20:50

和矢量s,这样:

s <- c(30, 36, 37, 58)

有没有办法比较两个向量,这样我们得到的值'v'的位置等于's'的值?这将是一个概括:

v[v==30]

但是包含s的所有值。有些人喜欢:

 v[v==s]

2 个答案:

答案 0 :(得分:3)

我认为你只是想要这样的东西来获得vs的位置。

which(v %in% s)
# [1] 11 17 18

如果值始终是唯一的,则可以创建一个显示值匹配的命名向量。

setNames(which(v %in% s), s[s %in% v])
# 30 36 37 
# 11 17 18 

答案 1 :(得分:0)

unlist(sapply(s, function(x) v[v==x]))

结果:

> v <- 20:50
> s <- c(30, 36, 37, 58)
> unlist(sapply(s, function(x) v[v==x]))
[1] 30 36 37