Использование `R` и` readr` для обработки времени без часов - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть несколько электронных таблиц, которые я планирую импортировать, используя readr. Время в исходной электронной таблице было записано как минуты и секунды без часов - «0:10» для «M: S». Для начальных временных меток не использовался другой ведущий ноль, который, как я считаю, является источником проблемы.

При попытке сэмплирования с read_csv этот столбец был правильно проанализирован как время, но с неправильным форматом ("H: M"). Использование col_types = cols(timecode = col_time(format = "%M:%S")) в вызове, похоже, не исправить.

Представляет собой вектор как раз и parse_time:

library(tidyverse)

times <- c("0:00", "0:10", "0:53", "6:22", "9:45", "10:21")
parse_time(times) #Shows H:M:S
parse_time(times, format = "%M:%S") #Errors until 10:21

Какие шаги я могу предпринять, чтобы правильно импортировать время, используя только минуты и секунды?

1 Ответ

0 голосов
/ 06 сентября 2018

Проблема, похоже, связана с отсутствующим лидирующим нулем в минутах. Одним из решений было бы добавить отсутствующий ноль, и тогда синтаксический анализ работает правильно:

library(tidyverse)

times2 <- c("00:00", "00:10", "00:53", "06:22", "09:45", "10:21")
parse_time(times2, format = "%M:%S")

Другое решение заключается в использовании функции strptime в базе R, которая может обрабатывать текущий формат. При этом результаты сохраняются в виде POSIXlt объектов с дополнительной информацией (что означает, что печать сложнее).

В ?parse_time это означает, что спецификация формата должна соответствовать полной строке.

...