我有数据1:
id number
1 a
2 b
3 c
其他数据2如:
id value
1 x
2 y
3 z
我希望合并两个数据集,如
a x
a y
a z
b x
b y
b z
c x
c y
c z
这两个数据集都有10k的数据,我真的无法手工完成,有人可以给我一些建议。谢谢!
答案 0 :(得分:0)
您可以使用' expand.grid()'像lmo指出的那样,或者以更加整洁的方式:
library(tidyverse)
创建数据帧(" tibbles"):
dt1 <- tribble(
~id, ~number,
1, "a",
2, "b",
3, "c" )
dt2 <- tribble(
~id, ~value,
1, "x",
2, "y",
3, "z")
使用lmo的建议,expand.grid():
expand.grid(dt1$number, dt2$value)
dplyr方法是:
dt2 %>%
expand(id, value) %>%
dplyr::left_join(dt1) %>%
select(-id)
导致:
Joining, by = "id"
# A tibble: 9 × 2
value number
<chr> <chr>
1 x a
2 y a
3 z a
4 x b
5 y b
6 z b
7 x c
8 y c
9 z c