Saya memiliki dua kerangka data yang ingin saya gabungkan. Saya ingin mengganti data yang ada di df1 dengan df2 dengan mencocokkan nama sekaligus menggabungkan baris baru, mempertahankan data di df1 yang tidak ada di df2, serta menggabungkan baris baru dari df2 yang tidak ada di df1. Contoh:

Df1:

name       age
A          15
B          15
C          16
D          17
E          18

Df2:

name       age       height
A          15        159
B          15        156
C          20        160
F          21        171
G          22        163

Hasil yang diinginkan:

name       age       height
A          15        159
B          15        156
C          20        160 
D          17        NA
E          18        NA
F          21        171
G          22        163

Lihat bahwa selain kolom baru yang digabungkan, baris C di df1 memiliki kolom usia yang diperbarui dari df2, dengan D & E dipertahankan, & F & G digabungkan ke dalam kerangka data. Apakah ada saran tentang cara melakukan ini? Terima kasih sebelumnya

1
Agnes Lee 4 Maret 2020, 18:37

1 menjawab

Jawaban Terbaik
library(dplyr) 
df1 %>% full_join(df2, by = "name") %>%
  mutate(age = coalesce(age.y, age.x)) %>%
  select(-age.y, -age.x)
1
Gregor Thomas 4 Maret 2020, 15:42