我有一个载体
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
此外,我想使用从前一个示例中提取的坐标从另一个向量中提取值(类似的坐标)。
答案 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提供了如何使用位置(例如which
或match
获得)或逻辑向量进行子集化的答案。您可以在此处详细了解子集化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]