Merging Dataadding Columns
To merge data frames (datasets) horizontally, use the merge function. In the most cases, you join the data frames by one or more common key variables (i.e., an inner join).
# merge two data frames by ID
total <- merge(data frameA,data frameB,by="ID") #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID
# merge two data frames by ID and Country
total <- merge(data frameA,data frameB,by=c("ID","Country")) #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID
Inner Join: merge(df1, df2)
These examples because R automatically joins the frames by common variable names, and you Wou LD most likely want to specify merge(df1, df2, by="CustomerId")
-Make sure, that's were matching on only the fields you desired. You can also use the by.x and BY.Y parameters if the matching variables has different names in the different data frames.
Outer Join:merge(x = df1, y = df2, by = "CustomerId", all = TRUE) #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID
Left outer:merge(x = df1, y = df2, by = "CustomerId", all.x=TRUE) #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID
Right outer:merge(x = df1, y = df2, by = "CustomerId", all.y=TRUE) #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID
Cross join:merge(x = df1, y = df2, by = NULL) #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID
#########################
> DF2 = Data.frame (Customerid=c (2,4,6), State=c (Rep ("Alabama", 2), Rep ("Ohio", 1)))
> DF1
CustomerId Product
1 1 Toaster
2 2 Toaster
3 3 Toaster
4 4 Radio
5 5 Radio
6 6 Radio
> DF2
CustomerId State
1 2 Alabama
2 4 Alabama
3 6 Ohio
> Merge (DF1, DF2, 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
> Merge (DF1, DF2, 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
> Merge (DF1, DF2, All.y=true)
CustomerId Product State
1 2 Toaster Alabama
2 4 Radio Alabama
3 6 Radio Ohio
#####################################
REF:
Http://stat.ethz.ch/R-manual/R-devel/library/base/html/merge.html
Http://www.statmethods.net/management/merging.html
Http://stackoverflow.com/questions/1299871/how-to-join-data-frames-in-r-inner-outer-left-right
Http://blog.sciencenet.cn/blog-508298-652589.html
R language Merge Data.frame