R - сравнить две колонки с NA - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть этот фрейм данных:

    df <- read.table(text="
                 date1       date2
    1            NA          2016-12-01 
    2            2017-01-01  2018-10-01 
    3            2016-12-01  NA 
    4            NA          NA
", header=TRUE)

Мне нужно создать новый столбец "max_date", который будет содержать максимум столбцов date1 / date2.Обратите внимание, что в некоторых строках есть значения NA, в некоторых случаях они являются NA в обоих столбцах.

Я пытался добиться этого с помощью некоторого if_else, но код слишком сложный.Результат должен быть

    result <- read.table(text="
                 date1       date2         max_date
    1            NA          2016-12-01    2016-12-01
    2            2017-01-01  2018-10-01    2018-10-01
    3            2016-12-01  NA            2016-12-01 
    4            NA          NA            NA
", header=TRUE)

1 Ответ

0 голосов
/ 04 декабря 2018

Вы можете использовать pmax:

transform(df, max_date = pmax(as.Date(date1), as.Date(date2), na.rm = TRUE))
#        date1      date2   max_date
# 1       <NA> 2016-12-01 2016-12-01
# 2 2017-01-01 2018-10-01 2018-10-01
# 3 2016-12-01       <NA> 2016-12-01
# 4       <NA>       <NA>       <NA>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...