例如,假设我有两个数据框......
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()函数,但只有当只有一个匹配值时,这似乎才有效。
由于
答案 0 :(得分:1)
要将来自一个数据框的值与来自另一个数据框的多个值匹配,您可以遍历第一个data.frame并获取每个值的第二个数据。
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