#r #datetime #na
#r #datetime #na
Вопрос:
У меня есть df следующим образом:
df <- data.frame(
value = c(1,2,3,4),
date_time = c(2016-11-15 13:30:00, 2016-11-15 14:30:00, <NA>, 2016-11-15 16:30:00)
)
в моем df переменная date_time является объектом POSIXct, который изначально был символьным объектом, который был преобразован в объект POSIXct с использованием as_datetime пакета lubridate .
Я пытаюсь создать новую переменную с именем date_time_new, где я заменяю значение <NA>
в столбце date_time на значение date_time плюс 1:00:00 (добавьте один час к предыдущему времени и замените <NA>
на это).
Чего я ожидал, так это следующего:
df <- data.frame(
value = c(1,2,3,4),
date_time = c(2016-11-15 13:30:00, 2016-11-15 14:30:00, <NA>, 2016-11-15 16:30:00),
date_time_new = c(2016-11-15 13:30:00, 2016-11-15 14:30:00, 2016-11-15 15:30:00, 2016-11-15 16:30:00)
)
Тем не менее, я получаю следующее:
df <- data.frame(
value = c(1,2,3,4),
date_time = c(2016-11-15 13:30:00, 2016-11-15 14:30:00, <NA>, 2016-11-15 16:30:00),
date_time_new = c(2016-11-15 13:30:00, 2016-11-15 14:30:00, <NA>, 2016-11-15 16:30:00)
)
И это код, который я пишу:
df <- df %>% mutate(date_time_new = ifelse(is.na(date_time) == TRUE, date_time hms(0,0,1), date_time)
Заранее спасибо за ваше время.
Комментарии:
1. Опечатка:
= TRUE
только с одним=
. Однако вам никогда не нужно сравниватьcondition == TRUE
, условие уже равноTRUE
orFALSE
.2. И, пожалуйста, разместите данные правильно, даты и время должны быть в кавычках.
3. Однако, благодаря Rui, я исправил опечатку, когда я использую date_time == «NA», возникает ошибка.
4. Вы должны использовать
is.na(date_time)
, просто удалите сравнение== TRUE
.5. Однако, спасибо, проблема по-прежнему не исчезает, и я получаю <NA> в новом столбце