Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Combine two data frames with the same column names

Tags:

dataframe

r

I have two data.frame with this format (this is small part of the data sets):

data.frame 1

ID  precip  lat lon
1   45  115 -122.5
2   42.5    130 -122.5
3   40  155 -122.5
4   37.5    140 -122.5

data.frame 2

    precip  lat lon
1   108.61  115 -122.5
2   85.83   130 -122.5
3   81.01   155 -122.5
4   NA  140 -122.5

I want to add data.frame2 to the end of data.frame1 so at the end I have something like this:

ID  precip  lat lon
1   45  115 -122.5
2   42.5    130 -122.5
3   40  155 -122.5
4   37.5    140 -122.5
5   108.61  115 -122.5
6   85.83   130 -122.5
7   81.01   155 -122.5
8   NA  140 -122.5
like image 956
user3000796 Avatar asked Nov 19 '13 20:11

user3000796


1 Answers

We can use rbind:

cbind, rbind: Take a sequence of vector, matrix or data-frame arguments and combine by columns or rows, respectively.

# dataframe 1
df1 <- read.table(text = "
ID  precip  lat lon
1   45  115 -122.5
2   42.5    130 -122.5
3   40  155 -122.5
4   37.5    140 -122.5
", header = TRUE)
# dataframe 2
df2 <- read.table(text = "
ID precip  lat lon
1   108.61  115 -122.5
2   85.83   130 -122.5
3   81.01   155 -122.5
4   NA  140 -122.5
", header = TRUE)

# combine by row
df3 <- rbind(df1, df2)

# update ID column
df3$ID <- 1:nrow(df3)

# output
df3
#   ID precip lat    lon
# 1  1  45.00 115 -122.5
# 2  2  42.50 130 -122.5
# 3  3  40.00 155 -122.5
# 4  4  37.50 140 -122.5
# 5  5 108.61 115 -122.5
# 6  6  85.83 130 -122.5
# 7  7  81.01 155 -122.5
# 8  8     NA 140 -122.5
like image 58
zx8754 Avatar answered Oct 31 '22 10:10

zx8754