Заполнение одного уникального столбца путем объединения одного фрейма данных с несколькими другими - PullRequest
0 голосов
/ 17 июня 2020

У меня есть три фрейма данных, например

df1 <- data.frame(ID = c("A","B","C","D","E"), nr = c(1,2,7,5,4))
df2 <- data.frame(ID = c("B", "C"), age = c(22, 26))
df3 <- data.frame(ID = c("A", "E"), age = c(31, 23))

df1 содержит всех разных лиц (т.е. идентификаторы), но не предоставляет информацию о возрасте, а df2 и df3 предоставляют возраст для только некоторые из лиц. Я хотел бы создать столбец «возраст» в df1, а затем постепенно заполнять его из столбца возраста df2, затем df3. Я попытался сделать это, используя функцию merge с by = "ID", но результат был похож на

ID nr age.x age.y
A  1  NA    31
B  2  22    NA
C  7  26    NA
D  5  NA    NA
E  4  NA    23

, хотя я хотел бы получить следующее:

ID nr age
A  1  31
B  2  22
C  7  26
D  5  NA
E  4  23

Есть идеи?

Спасибо за помощь, Вал

1 Ответ

3 голосов
/ 17 июня 2020

Вам нужно сначала rbind второй и третий фреймы данных, а затем объединить, т.е.

merge(df1, rbind(df2, df3), by = 'ID', all.x = TRUE)

#  ID nr age
#1  A  1  31
#2  B  2  22
#3  C  7  26
#4  D  5  NA
#5  E  4  23
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...