Как я понимаю, когда объекты, объединяемые с помощью функции c (...), имеют разные типы, они объединяются в один тип, который является типом выходного объекта
Согласно документации R
Тип вывода определяется по наивысшему типу компонентов в иерархии NULL <необработанный <логический <целочисленный <двойной <сложный <символ <список <выражение. </p>
Даты имеют тип данных double, поэтому, если в паре с символом должен получиться символ, если в паре с целым числом должен получиться двойной, как мы можем видеть здесь
> a<-as.Date("2019-01-01")
> c("a",a)
[1] "a" "17901"
> c(1L,a)
[1] 1 17901
> typeof(c(1L,a))
[1] "double"
Однако, если датаСначала функция пытается преобразовать другие значения в класс Date. Похоже, это не соответствует поведению из документации
> c(a,1)
[1] "2019-01-05" "1970-01-02"
> c(a,"a")
[1] "2019-01-05" NA
Warning message: In as.POSIXlt.Date(x) : NAs introduced by coercion
Какие дополнительные правила применяются здесь? Или, в качестве альтернативы, что я неправильно понял в ситуации?