我知道这似乎微不足道,但假设我有一个向量v,使得:
v <- 20:50
和矢量s,这样:
s <- c(30, 36, 37, 58)
有没有办法比较两个向量,这样我们得到的值'v'的位置等于's'的值?这将是一个概括:
v[v==30]
但是包含s的所有值。有些人喜欢:
v[v==s]
答案 0 :(得分:3)
我认为你只是想要这样的东西来获得v
中s
的位置。
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