例如,假设我有两个数据帧。。。
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