在R中,我有一个元素x
和一个向量v
.我想找到一个元素的第一个索引v
,它等于x
.我知道这样做的一种方法是:which(x == v)[[1]]
,但这似乎效率过低.有更直接的方法吗?
对于奖励积分,是否有一个功能,如果x
是一个矢量?也就是说,它应该返回一个索引向量,指示x
in 的每个元素的位置v
.
我希望创建一个从一个到另一个vector
的职位。这类似于以下问题:elements
vector
vector
match
base 中的函数在R
最简单的情况下工作,如下所示:
a <- c(1,1,2,2,3,3,4,4,5,5)
b <- c(1,2,3,4,5)
desired.output <- c(1,3,5,7,9)
match(b,a)
#[1] 1 3 5 7 9
Run Code Online (Sandbox Code Playgroud)
但是,match
在如下所示的更复杂的情况下似乎不起作用。which
我可能需要和的组合match
。到目前为止,在我考虑的每种情况下, 中的值b
出现的频率并不b
比 中出现的频率高a
。我需要一个基本R
解决方案。
a <- c(1,1,2,2,3,3,4,4,5,5)
b <- c(1,2,2,3,4,5)
desired.output <- c(1,3,4,5,7,9)
a <- c(1,1,2,2,3,3,4,4,5,5)
b <- c(1,2,2,3,4,4,5)
desired.output <- c(1,3,4,5,7,8,9)
a <- c(1,1,2,2,3,3,4,4,5,5)
b <- c(1,2,2,3,4,4,5,5)
desired.output <- c(1,3,4,5,7,8,9,10)
a <- c(1,1,2,2,3,3,4,4,5,5)
b <- …
Run Code Online (Sandbox Code Playgroud)