Как объединить два фрейма данных с одинаковыми переменными, но с отсутствующими значениями в обоих фреймах данных (?) - PullRequest
0 голосов
/ 10 ноября 2018

Учитывая два кадра данных:

data_1 имеет все переменные, которые мне нужны, но некоторые переменные имеют пропущенные значения (NA).

> ID      Group                    Ne             Cars          
>  1      Control                  NA              Yes     
>  
   2      Patient                  A              NA
>
   3      Patient                  NA             No

data_2 образовано только некоторыми из row_names и некоторыми переменными data_1, но эти data_2 переменные содержали некоторые из пропущенных значений переменных в data_1.

> ID      Ne     Cars
> 
   1       A      Yes
>
   3       B       NA

Мне нужно, чтобы он выглядел как

>ID     Group     NE  Cars
>
1    Control       A   Yes
>
2    Patient       A   NA
> 
3    Patient       B   No

Я пытался data_3 <- merge(data_1, data2, by=c("Id","Group","Ne","Cars",...), all=TRUE/and all.x=TRUE/and all.y=TRUE) и, очевидно, он не работает.

Как объединить оба фрейма данных, сохранив информацию о data_1 и добавив пропущенные значения переменных (из data_2), не добавляя / дублируя имена строк, но объединяя?

Спасибо!

1 Ответ

0 голосов
/ 10 ноября 2018

Попробуйте с:

library(tidyverse)

bind_rows(df1, df2) %>% group_by(ID) %>% 
    arrange(is.na(Group)) %>% fill(Group) %>% 
    arrange(is.na(Ne)) %>% fill(Ne) %>% 
    arrange(is.na(Cars)) %>% fill(Cars) %>% 
    distinct()

Выход:

     ID Group   Ne    Cars 
  <int> <chr>   <chr> <chr>
1     1 Control A     Yes  
2     2 Patient A     NA   
3     3 Patient B     No 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...