Замена НА во временной переменной в R - PullRequest
0 голосов
/ 30 мая 2020

У меня возникают проблемы при работе с НА в моем фрейме данных.

Переменная, которая содержит все НА, является временной переменной в формате HMS. Я хочу заменить NA на 00: 00: 00.

Вот пример того, на что я смотрю.

< time> 00:00:07, 00:00:02, NA, 00:00:00, NA, 00:00:00, 00:00:00, NA, 00:00:00

Или лучший вид может быть

glimpse(k$hold_time)
'hms' num [1:965201] 00:00:07 00:00:02 NA 00:00:00 ...
   - attr(*, "units")= chr "secs"

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

K$hold_time[is.na(k$hold_time)] <- 0

Также, когда я запускаю эту строку, она дает мне правильное количество NA, поэтому я знаю, что R правильно их поднимает.

sum(is.na(k$hold_time))

1 Ответ

1 голос
/ 30 мая 2020

Похоже, что hold_time относится к классу hms. Попробуйте использовать:

k$hold_time[is.na(k$hold_time)] <- hms::hms(0)

Воспроизводимый пример:

set.seed(123)
k <- data.frame(hold_time = hms::hms(sample(100, 10)))
k$hold_time[c(5, 8)] <- NA
k

#   hold_time
#1   00:00:31
#2   00:01:19
#3   00:00:51
#4   00:00:14
#5         NA
#6   00:00:42
#7   00:00:50
#8         NA
#9   00:01:37
#10  00:00:25


k$hold_time[is.na(k$hold_time)] <- hms::hms(0)
k
#   hold_time
#1   00:00:31
#2   00:01:19
#3   00:00:51
#4   00:00:14
#5   00:00:00
#6   00:00:42
#7   00:00:50
#8   00:00:00
#9   00:01:37
#10  00:00:25
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...