在某个值的向量中的位置,应用所提到的位置从另一个向量中提取值

时间:2013-12-26 23:44:24

标签: r vector

我有一个载体

   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(a, 11)
   [1] NA NA NA NA NA  1 NA NA NA NA NA NA NA

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

您正在寻找which[

> which(a==11)  # extracting location of value 11
[1] 6

以下回答你的第二个问题

> other.vector[which(a==11)] # extracting the 11th element from another vector

或直接

> other.vector[a==11]