我猜这是重复的,但我找不到,所以这里......
我想首先返回第二个索引:
first = c( "a" , "c" , "b" )
second = c( "c" , "b" , "a" )
result = c( 2 , 3 , 1 )
我保证第一个和第二个具有唯一值,并且两者之间具有相同的值。
答案 0 :(得分:33)
获取值的索引是match()
的用途。
first = c( "a" , "c" , "b" )
second = c( "c" , "b" , "a" )
match(second, first)
[1] 2 3 1
答案 1 :(得分:3)
我正在解决相关问题,根据模式选择向量的元素。假设我们有向量'a',我们希望找到向量'b'的出现。可以通过乘法搜索模式过滤数据表。
a=c(1, 1, 27, 9, 0, 9, 6, 5, 7)
b=c(1, 9)
match(a, b)
[1] 1 1 NA 2 NA 2 NA NA NA
所以匹配()它在这里并没有用。在%中应用二元运算符%更方便:
a %in% b
[1] TRUE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE
a[a %in% b]
[1] 1 1 9 9
实际上来自match()帮助%in%只是一个环绕match()函数:
"%in%" <- function(x, table) match(x, table, nomatch = 0) > 0