合并dplyr设置的两个数据

时间:2017-05-09 12:49:59

标签: r dataframe merge dataset

我有数据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的数据,我真的无法手工完成,有人可以给我一些建议。谢谢!

1 个答案:

答案 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