I want to merge two table with different row numbers by the specific way. I have the next:
df1 <- data.frame(num = c(1,1,1,2,2,2),
lab = c("A", "B", "C", "A", "B", "C"),
val = c(0,0,0,0,0,0))
df1
num lab val
1 1 A 0
2 1 B 0
3 1 C 0
4 2 A 0
5 2 B 0
6 2 C 0
df2 <- data.frame(num = c(1,1,2),
lab = c("A", "B", "A"),
val = c(10,10,10))
df2
num lab val
1 1 A 10
2 1 B 10
3 2 A 10
I want to merge df1 and df2 to get df3:
df3 <- data.frame(num = c(1,1,1,2,2,2),
lab = c("A", "B", "C", "A", "B", "C"),
val = c(10,10,0,10,0,0))
df3
num lab val
1 1 A 10
2 1 B 10
3 1 C 0
4 2 A 10
5 2 B 0
6 2 C 0
How to do that?
You can do it with one line:
dplyr::rows_update(df1, df2, by = c("num", "lab"))
# num lab val
# 1 1 A 10
# 2 1 B 10
# 3 1 C 0
# 4 2 A 10
# 5 2 B 0
# 6 2 C 0