У меня есть два кадра данных df1 и df2, я ищу простейшую операцию для получения df3.
Я хочу заменить строки в df1
на строки из df2
, если id
соответствует (так что rbind.fill
не является решением), и добавить строки из df2
, где id
не существует в df1
, но только для столбцов, которые существуют в df2
.
Полагаю, я мог бы использовать несколько объединений и антисоединений, а затем объединить, но мне интересно, существует ли уже функция для этой операции.
df1 <- data.frame(id = 1:5, c1 = 11:15, c2 = 16:20, c3 = 21:25)
df2 <- data.frame(id = 4:7, c1 = 1:4, c2 = 5:8)
df1
id c1 c2 c3
1 11 16 21
2 12 17 22
3 13 18 23
4 14 19 24
5 15 20 25
df2
id c1 c2
4 1 5
5 2 6
6 3 7
7 4 8
df3
id c1 c2 c3
1 11 16 21
2 12 17 22
3 13 18 23
4 1 5 24
5 2 6 25
6 3 7 NULL
7 4 8 NULL