abc196998
abc196998

Reputation: 47

Add 2 dataframe with dfifferent lengths in R

I have the above 2 dataframes in R,


df1 = [a,2      df2 = [a,10
      b,3]             c,2]

I want to add those 2 df, so the output can be

df = [a, 12,
      b, 3,
      c, 2]

Any advice would be much appreciated, thanks!

Upvotes: 1

Views: 87

Answers (1)

akrun
akrun

Reputation: 887771

We can rbind the two datasets and do a group by sum

aggregate(col2 ~ col1, rbind(df1, df2), sum)

-output

#   col1 col2
#1    a   12
#2    b    3
#3    c    2

Or in dplyr

library(dplyr)
bind_rows(df1, df2) %>%
     group_by(col1) %>%
     summarise(col2 = sum(col2), .groups = 'drop')

-output

# A tibble: 3 x 2
#  col1   col2
#  <chr> <dbl>
#1 a        12
#2 b         3
#3 c         2

data

df2 <- data.frame(col1 = c('a', 'c'), col2 = c(10, 2))
df1 <- data.frame(col1 = c('a', 'b'), col2 = c(2, 3))

Upvotes: 1

Related Questions