r裏面如何實現兩列數據合併爲一列

  1. library(dplyr)
  2. unite(mtcars, "vs_am", vs, am)

Merging Data

Adding Columns

To merge two data frames (datasets) horizontally,  use the merge function. In most cases, you join two data frames  by one or more common key variables (i.e., an inner join).html

# merge two data frames by ID  post

total <- merge(data frameA,data frameB,by="ID") #by指定的列中的值必須是惟一的,不能重複出現兩行有相同的ID.net

# merge two data frames by ID and Country  code

total <- merge(data frameA,data frameB,by=c("ID","Country")) #by指定的列中的值必須是惟一的,不能重複出現兩行有相同的IDhtm

 

Inner join: merge(df1, df2) will work for these examples because R automatically joins the frames by common variable names, but you would most likely want to specify merge(df1, df2, by="CustomerId") to make sure that you were matching on only the fields you desired.  You can also use the by.x and by.y parameters if the matching variables have different names in the different data frames.blog

Outer join: merge(x = df1, y = df2, by = "CustomerId", all = TRUE) #by指定的列中的值必須是惟一的,不能重複出現兩行有相同的IDci

Left outer: merge(x = df1, y = df2, by = "CustomerId", all.x=TRUE) #by指定的列中的值必須是惟一的,不能重複出現兩行有相同的IDget

Right outer: merge(x = df1, y = df2, by = "CustomerId", all.y=TRUE) #by指定的列中的值必須是惟一的,不能重複出現兩行有相同的IDit

Cross join: merge(x = df1, y = df2, by = NULL) #by指定的列中的值必須是惟一的,不能重複出現兩行有相同的IDio

 

 

#########################

> 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

 
分類:  [31]R
相關文章
相關標籤/搜索