【问题标题】:merge two data set by dplyr合并 dplyr 的两个数据集
【发布时间】:2017-10-07 19:03:45
【问题描述】:

我有类似的数据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的数据,我真的不能手工做,谁能给我一些建议。谢谢!

【问题讨论】:

  • 也许只是基本的 R expand.grid(data1$number, data2$value).
  • 感谢您的帮助!!!这就是我需要的。

标签: r dataframe merge dataset


【解决方案1】:

您可以像 lmo 指出的那样使用“expand.grid()”,或者以更整洁的方式:

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

【讨论】:

    猜你喜欢
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    相关资源
    最近更新 更多