R数据框合并(merge)的几种方式

merge data frames (inner, outer, left, right)

数据

> df1 = data.frame(CustomerId = c(1:6), Product = c(rep("Toaster", 3), rep("Radio", 3)))  
> df1    
> CustomerId    Product
1          1    Toaster
2          2    Toaster
3          3    Toaster
4          4    Radio
5          5    Radio
6          6    Radio

> df2 = data.frame(CustomerId = c(2, 4, 6), State = c(rep("Alabama", 2), rep("Ohio", 1)))
> df      
> CustomerId   State
1          2   Alabama
2          4   Alabama
3          6   Ohio  

inner

  > merge(x = df1, y = df2, by = "CustomerId", all = TRUE)          
  > CustomerId  Product   State
  1          1  Toaster   
  2          2  Toaster   Alabama
  3          3  Toaster   
  4          4  Radio     Alabama
  5          5  Radio     
  6          6  Radio     Ohio

left

> merge(x = df1, y = df2, by = "CustomerId", all.x = TRUE)
> CustomerId  Product   State           
1          1  Toaster   
2          2  Toaster   Alabama
3          3  Toaster   
4          4  Radio     Alabama
5          5  Radio     
6          6  Radio     Ohio

right

> merge(x = df1, y = df2, by = "CustomerId", all.y = TRUE)  
> CustomerId  Product   State
1          2  Toaster   Alabama
2          4  Radio     Alabama
3          6  Radio     Ohio

outer

> merge(x = df1, y = df2, by = NULL)
> CustomerId.x  Product CustomerId.y   State
1            1  Toaster            2   Alabama
2            2  Toaster            2   Alabama
3            3  Toaster            2   Alabama
4            4  Radio              2   Alabama
5            5  Radio              2   Alabama
6            6  Radio              2   Alabama
7            1  Toaster            4   Alabama
8            2  Toaster            4   Alabama
9            3  Toaster            4   Alabama
10           4  Radio              4   Alabama
11           5  Radio              4   Alabama
12           6  Radio              4   Alabama
13           1  Toaster            6   Ohio
14           2  Toaster            6   Ohio
15           3  Toaster            6   Ohio
16           4  Radio              6   Ohio
17           5  Radio              6   Ohio
18           6  Radio              6   Ohio

你可能感兴趣的:(R,R,数据框合并,merge)