在 R 中,我有一个元素x
和一个向量v
。我想找到一个元素的第一个索引v
等于x
。我知道做到这一点的一种方法是:which(x == v)[[1]]
,但这似乎效率太低了。有没有更直接的方法来做到这一点?
对于奖励积分,是否有一个功能可以在以下情况下工作:x
是一个向量?也就是说,它应该返回一个索引向量,指示每个元素的位置x
in v
.
功能match
适用于向量:
x <- sample(1:10)
x
# [1] 4 5 9 3 8 1 6 10 7 2
match(c(4,8),x)
# [1] 1 5
match
根据您的要求,仅返回匹配项的第一次遇到。它返回第一个参数中的值在第二个参数中的位置。
对于多重匹配,%in%
是要走的路:
x <- sample(1:4,10,replace=TRUE)
x
# [1] 3 4 3 3 2 3 1 1 2 2
which(x %in% c(2,4))
# [1] 2 5 9 10
%in%
返回一个与第一个参数相同的逻辑向量,其中TRUE
如果可以在第二个参数中找到该值并且FALSE
否则。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)