Как уже упоминалось @Sotos, причина, по которой вы получаете это предупреждающее сообщение, заключается в том, что в вашей функции вы используете оператор if
, но объект t
, вероятно, является вектором дат.Поскольку if
не является векторизованным, ваша функция будет проверять только, отсутствует ли первый элемент t
(в if (is.na(t))
), и выдает вам это точное предупреждение.Обратите внимание, что ваш код по-прежнему будет работать, однако он, вероятно, не вернет то, что вы ожидаете.
Самый простой способ исправить это без редактирования вашей функции - использовать sapply()
.Вы можете сделать что-то вроде этого:
t <- time(d)
t2 <- sapply(t, FUN = date_to_numeric)
Вы также можете отредактировать вашу функцию date_to_numeric
, чтобы учесть правильные векторизованные вычисления, которые я бы порекомендовал в долгосрочной перспективе.