假设我们有两个不同的数据集:
数据集 A:
ids name price
1234 bread 1.5
245r7 butter 1.2
123984 red wine 5
43498 beer 1
235897 cream 1.8
Run Code Online (Sandbox Code Playgroud)
数据集 B:
ids name price
24908 lait 1
1234,089 pain 1.7
77289,43498 bière 1.5
245r7 beurre 1.4
Run Code Online (Sandbox Code Playgroud)
我的目标是匹配所有共享至少一个 ID 的产品,并将它们组合成一个新的数据集,如下所示:
id a_name b_name a_price b_price
1234 bread pain 1.5 1.7
245r7 butter beurre 1.2 1.4
43498 beer bière 1 1.5
Run Code Online (Sandbox Code Playgroud)
这是否可行使用stringr或任何其他 R 包?
您可以创建一个长数据集,separate_rows然后进行连接。
library(dplyr)
library(tidyr)
B %>%
separate_rows(ids, sep = ',') %>%
inner_join(A, by = 'ids')
# ids name.x price.x name.y price.y
# <chr> <chr> <dbl> <chr> <dbl>
#1 1234 pain 1.7 bread 1.5
#2 43498 bière 1.5 beer 1
#3 245r7 beurre 1.4 butter 1.2
Run Code Online (Sandbox Code Playgroud)