【发布时间】:2019-07-27 22:26:53
【问题描述】:
我有 2 个带有索引列的小标题和在 2 个 tbs 中具有相同名称的 n 个变量:
index var_1 var_2 ... var_n
... ... ... ... ...
... ... ... ... ...
对于 tb1 中的每一行,在 tb2 中恰好有一行具有 var_1 直到 var_n 的匹配值。我的目标是为 tb1 中的每一行找到 tb2 中匹配行的索引值。
困难在于无法假设小标题中的变量数量或名称(index 除外),只是小标题之间的名称相同。
示例数据
library(tidyverse)
(tb1 <- tibble(index = sample(1:5), alpha = c("A","A","A","B","B"),
bravo = c(1,2,3,1,1), charlie = c("x","x","x","x","y")))
# A tibble: 5 x 4
index alpha bravo charlie
<int> <chr> <dbl> <chr>
1 2 A 1 x
2 5 A 2 x
3 4 A 3 x
4 3 B 1 x
5 1 B 1 y
(tb2 <- tibble(index = c(10, 6, 9, 7, 8), alpha = c("A","A","A","B","B"),
bravo = c(1,3,2,1,1), charlie = c("x","x","x","x","y")))
# A tibble: 5 x 4
index alpha bravo charlie
<int> <chr> <dbl> <chr>
1 10 A 1 x
2 6 A 3 x
3 9 A 2 x
4 7 B 1 x
5 8 B 1 y
预期输出
10, 9, 6, 7, 8
有人可以为这个问题提供一个(最好是 tidyverse)解决方案吗?
【问题讨论】:
-
semi_join(tb2, tb1[-1]),虽然它不会为您重新排序观察结果