我有一个向量

   a <- seq(from =1, to = 25, by = 2)
   [1]  1  3  5  7  9 11 13 15 17 19 21 23 25

我想提取与向量中出现的 11 的值/s 重合的位置编号(坐标),我必须做什么? match 指出它在向量中的位置,但不提供坐标
   match(a, 11)
   [1] NA NA NA NA NA  1 NA NA NA NA NA NA NA

此外,我想使用从前面的示例中提取的坐标从另一个向量(类似坐标)中提取值。

最佳答案

match 确实为您提供了“第二个参数中第一个参数的(第一个)匹配位置”。如果在 match 调用中交换 11 和 'a',则会在 'a' 中获得 11 的(第一个)位置:

match(11, a)
# [1] 6

来自 ?which :“对于标量 a [在您的情况下为 11],match(a, x) 等效于 min(which(x == a)) 但效率更高”。

但是,如果您想要所有匹配项的位置,请使用 which

@Jilber 提供了如何使用位置(例如通过 whichmatch 获得)或用于子集化的逻辑向量的答案。您可以在此处阅读有关子集 here 的更多信息: ?Extract

关于r - 在某个值的向量中的位置,应用提到的位置从另一个向量中提取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20792769/

10-14 04:18