[R] about combining two dataframes

lily li chocold12 at gmail.com
Wed May 24 19:50:04 CEST 2017


Thanks, I didn't know the email function before.
The code works. I found that using "=" is different from using "<-".


On Wed, May 24, 2017 at 11:41 AM, David L Carlson <dcarlson at tamu.edu> wrote:

> Is there a reason not to just rename the columns?
>
> First, you should use dput(DF1) and dput(DF2) to send your example tables
> to the list:
>
> DF1 <- structure(list(year = c(1981L, 1981L, 1981L, 1981L), month = c(1L,
> 1L, 1L, 1L), day = 1:4, product1 = c(18L, 19L, 16L, 19L), product2 = c(56L,
> 45L, 48L, 50L), product3 = c(20L, 22L, 28L, 21L)), .Names = c("year",
> "month", "day", "product1", "product2", "product3"), class = "data.frame",
> row.names = c(NA, -4L))
>
> DF2 <- structure(list(yr = c(1981L, 1981L, 1981L), mon = c(2L, 2L, 2L
> ), d = 1:3, prod = c(17L, 20L, 21L), prod2 = c(49L, 47L, 52L),
>     prod3 = c(25L, 23L, 27L)), .Names = c("yr", "mon", "d", "prod",
> "prod2", "prod3"), class = "data.frame", row.names = c(NA, -3L
> ))
>
> Assuming they are the same structure as you said:
>
> colnames(DF2) <- colnames(DF1)
> rbind(DF1, DF2)
> #   year month day product1 product2 product3
> # 1 1981     1   1       18       56       20
> # 2 1981     1   2       19       45       22
> # 3 1981     1   3       16       48       28
> # 4 1981     1   4       19       50       21
> # 5 1981     2   1       17       49       25
> # 6 1981     2   2       20       47       23
> # 7 1981     2   3       21       52       27
>
> The attached .png image file shows you how to send plain text emails to
> r-help using gmail.
>
> -------------------------------------
> David L Carlson
> Department of Anthropology
> Texas A&M University
> College Station, TX 77840-4352
>
> -----Original Message-----
> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of lily li
> Sent: Wednesday, May 24, 2017 12:30 PM
> To: R mailing list <r-help at r-project.org>
> Subject: [R] about combining two dataframes
>
> Hi all,
>
> I have a question about combining two data frames. For example, there are
> the two dataframes below, with the same structure but different column
> names and column lengths. How to add the values in DF2 to the end of DF1,
> though the column names do not match? How to add more than two? Thanks.
>
> DF1
> year   month   day   product1   product2   product3
> 1981     1          1         18              56            20
> 1981     1          2         19              45            22
> 1981     1          3         16              48            28
> 1981     1          4         19              50            21
>
> DF2
> yr         mon      d         prod        prod2       prod3
> 1981     2          1         17              49            25
> 1981     2          2         20              47            23
> 1981     2          3         21              52            27
>
> I use the code below but it does not work.
> require(dplyr)
> bind_rows(DF1, DF2) or bind_cols(DF1, DF2)
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/
> posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list