2017-05-09 80 views
-2

設置我有DATA1這樣的:合併兩個數據通過dplyr

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

也許只是基礎R'expand.grid(DATA1 $數,DATA2 $值)'。 – lmo

+0

謝謝你的幫助!這是我需要的。 –

回答

0

您可以使用 'expand.grid()' 像LMO指出,或更tidyverse時尚:

library(tidyverse) 

創建dataframes( 「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 
+0

@zenhyu它能解決你的問題嗎? – Dan