小编典典

是否有用于查找向量中元素索引的 R 函数?

all

在 R 中,我有一个元素x和一个向量v。我想找到v等于的元素的第一个索引x。我知道这样做的一种方法是:which(x == v)[[1]],但这似乎效率太低了。有没有更直接的方法呢?

x对于奖励积分,如果是向量,是否有有效的函数?也就是说,它应该返回一个索引向量,指示 in 的每个元素的x位置v


阅读 81

收藏
2022-03-28

共1个答案

小编典典

该函数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如果该值可以在第二个参数中找到,则返回 aFALSE否则。

2022-03-28