Мне нужно заменить неуклюжие строки в R, особенно времена, которые находятся в странном формате. Данные выглядят так:
Date | Time | AmbientTemp
2000-01-01 | 11:00 a | 25
2000-01-01 | 11:30 a | 25.5
2000-01-01 | 11:00 p | 20
2000-01-01 | 11:30 p | 19.5
a
и p
означают AM и PM соответственно (очевидно).
lubridate
и base
R не могут преобразовать эти даты в правильном формате. Таким образом, я обратился к громоздкой функции str_replace_all
(из пакета stringr
), чтобы преобразовать ВСЕ мои времена в большом кадре данных:> 130000 записей.
Примеры функций:
uploadDat$Time = str_replace_all(uploadDat$Time,"11:00 a","11:00")
uploadDat$Time = str_replace_all(uploadDat$Time,"11:00 p","23:00")
Я изменил класс времени, используя as.character()
перед применением функций stringr
.
Результат идеален, за исключением 11'o часов (как указано выше), которые конвертируются следующим образом:
Date | Time | AmbientTemp
2000-01-01 | 101:00 | 25
2000-01-01 | 101:30 | 25.5
2000-01-01 | 113:30 | 20
2000-01-01 | 113:30 | 19.5
Почему эти данные c раз преобразованы неправильно?