似乎应该有一个简单的答案,但我一直找不到:
tib1 <- tibble(x = list(1, 2, 3), y = list(4, 5, 6))
tib1
# A tibble: 3 × 2
x y
<list> <list>
1 <dbl [1]> <dbl [1]>
2 <dbl [1]> <dbl [1]>
3 <dbl [1]> <dbl [1]>
tib2 <- tibble(x = list(1, 2, 4, 5), y = list(4, c(5, 10), 6, 7))
tib2
# A tibble: 4 × 2
x y
<list> <list>
1 <dbl [1]> <dbl [1]>
2 <dbl [1]> <dbl [2]>
3 <dbl [1]> <dbl [1]>
4 <dbl [1]> <dbl [1]>
dplyr::inner_join(tib1, tib2)
加入, by = c("x", "y")
inner_join_impl(x, y, by$x, by$y, suffix$x, suffix$y) 中的错误:由于类型不兼容(列表/列表),无法加入 'x' x 'x'
那么有没有办法基于列表列执行连接(在我开始编写自己的列之前)?
基本上,如果两个关键变量的列表相同,我希望该行包含在最终表中,如果不是 - 不是。在上面的示例中,有两个关键变量x
,y
并且结果应该只是两个tibble
s 中的第一行,因为它是两个关键变量中唯一相同的:
tibble(x = list(1), y = list(4))
# A tibble: 1 × 2
x y
<list> <list>
1 <dbl [1]> <dbl [1]>