У меня есть фрейм данных с идентификатором и три столбца даты, которые должны быть одинаковыми в каждой строке, но иногда возникают конфликты.
Для каждой строки я хочу сравнить три даты, и если хотя бы две совпадают, то поставить эту дату, а если все не согласны, то поставить NA.
Это немного осложняется тем, что есть также NA для неизвестных дат. Если есть два АН и одна дата, я буду рад сохранить эту единственную дату.
Я мог бы сделать это с кучей ifelse, но мне было интересно, есть ли изящный способ сделать это.
Примером проблемы является этот кадр данных:
dataDF <- data.frame(
id = c(1,2,3,4,5,6),
date1 = as.Date(c('2000-01-01', '2000-05-01', NA, NA, '2000-01-05', NA)),
date2 = as.Date(c('2000-01-01', '2000-01-02', '2000-01-03', '2000-01-04', '2000-01-06', NA)),
date3 = as.Date(c(NA, '2000-01-02', '2000-05-03', NA , '2000-01-07', NA))
)
Я хотел бы получить новый чистый столбец date
, чтобы фрейм данных выглядел следующим образом:
id date1 date2 date3 date
1 1 2000-01-01 2000-01-01 <NA> 2000-01-01
2 2 2000-05-01 2000-01-02 2000-01-02 2000-01-02
3 3 <NA> 2000-01-03 2000-05-03 <NA>
4 4 <NA> 2000-01-04 <NA> 2000-01-04
5 5 2000-01-05 2000-01-06 2000-01-07 <NA>
6 6 <NA> <NA> <NA> <NA>
заранее спасибо