Я хочу найти первую дату в нескольких столбцах данных (класс POSIXct), некоторые из которых могут быть пустыми, и я обнаружил, что min () иногда преобразует это число в числовое.
Итак, я начал исследовать, когда это происходит, и обнаружил, что это происходит, если первый аргумент оказывается NULL (не имеет значения, является ли какой-либо другой вход NULL).
Сравните следующие примеры:
min(as.POSIXct(c('2018-01-01','2018-01-02'), tz='UTC')) # Works as expected
min(as.POSIXct(c('2018-01-01','2018-01-02'), tz='UTC'), NULL) # Still fine
min(NULL, as.POSIXct(c('2018-01-01','2018-01-02'), tz='UTC')) # Returns 1514764800
Это ошибка?
Прямо сейчас я создал обходной путь, подобный этому:
min(if(is.null(df$timest1)) as.POSIXct('2099-12-31') else df$timest1,
df$timest2, df$timest3)
Но в лучшем случае это выглядит ужасно, я ожидал, что min () проигнорирует все NULL
Есть какие-нибудь мысли о том, что я делаю что-то не так, или я должен сообщить об ошибке?