您的位置:首页 > 其它

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

2016-03-31 18:40 204 查看

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   <NA>
2          2  Toaster   Alabama
3          3  Toaster   <NA>
4          4  Radio     Alabama
5          5  Radio     <NA>
6          6  Radio     Ohio


left

> merge(x = df1, y = df2, by = "CustomerId", all.x = TRUE)
> CustomerId  Product   State
1          1  Toaster   <NA>
2          2  Toaster   Alabama
3          3  Toaster   <NA>
4          4  Radio     Alabama
5          5  Radio     <NA>
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: