R-将一个数据帧中的一个值与另一个数据框中的多个值相匹配



例如,假设我有两个数据帧。。。

d1 <- data.frame(c(a,b,c,d,e,f))
d2 <- data.frame(c(a,a,a,b,b,d,d,d,d,d,e,e,f))

我想从d2中的d1搜索"a",并显示每个匹配值的索引,这些值可以存储在向量中。

我已经搜索并使用了Match()函数,但这似乎只有在只有一个匹配值的情况下才有效。

感谢

要将一个数据帧中的一个值与另一个数据框中的多个值进行匹配,可以循环遍历第一个数据帧,并在第二个数据帧获得每个值的标记。

d1 <- data.frame(x = c("a","b","c","d","e","f"), stringsAsFactors = F)
d2 <- data.frame(x = c("a","a","a","b","b","d","d","d","d","d","e","e","f"), stringsAsFactors = F)
sapply(d1$x, function(value) which(d2 == value))
#> $a
#> [1] 1 2 3
#> 
#> $b
#> [1] 4 5
#> 
#> $c
#> integer(0)
#> 
#> $d
#> [1]  6  7  8  9 10
#> 
#> $e
#> [1] 11 12
#> 
#> $f
#> [1] 13

最新更新