The goal is to mutate a new column to a df1, by matching a column in both df1 and df2, and returning the matching row value for another column (col5) in df2, [AND ONLY THE VALUE OF THAT COLUMN] which will be added to df1.
df1 <- data.frame(c(1,1,1,2,2,2,3,3,3), c(9,9,9,8,8,8,7,7,7)),
c(6,6,6,5,5,5,4,4,4), c('A','A','A','B','B','B','C','C','C')
colnames(df1) <- c('col1','col2','col3', 'col4')
df2 <- data.frame(c(1,2,3), c(100,200,300), c('D','E','F'))
colnames(df2) <- c('col1','col5', 'col6)
the end result should be
col1 | col2 | col3 | col4 | col5 |
---|---|---|---|---|
1 | 9 | 6 | A | 100 |
1 | 9 | 6 | A | 100 |
1 | 9 | 6 | A | 100 |
2 | 8 | 5 | B | 200 |
2 | 8 | 5 | B | 200 |
2 | 8 | 5 | B | 200 |
3 | 7 | 4 | C | 300 |
3 | 7 | 4 | C | 300 |
3 | 7 | 4 | C | 300 |
I've tried things like
df1 <- df1 %>%
mutate(ifelse(col1==df2$col1, df$2col2, "")
But doesn't work. Suggestions hugely appreciated. left_join almost works, but I am trying to avoid merge all of the columns of the two dataframes. I only want to match col1 in both dataframes, and add col5 from df2 to df1.