在 R 中,我有一个元素x和一个向量v。我想找到v等于的元素的第一个索引x。我知道这样做的一种方法是:which(x == v)[[1]],但这似乎效率太低了。有没有更直接的方法呢?
x
v
which(x == v)[[1]]
x对于奖励积分,如果是向量,是否有有效的函数?也就是说,它应该返回一个索引向量,指示 in 的每个元素的x位置v。
该函数match适用于向量:
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%要走的路是:
%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如果该值可以在第二个参数中找到,则返回 aFALSE否则。
TRUE
FALSE