merge data frames (inner, outer, left, right)
数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
> 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
1
2
3
4
5
6
7
8
|
> 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
1
2
3
4
5
6
7
8
|
> 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
1
2
3
4
5
|
> 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
> 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语言数据框合并(merge)的几种方式小结的文章就介绍到这了,更多相关R语言数据框合并内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/asongsongsong/article/details/51029165