Преобразование строки в миллисекунды в R - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть строка, которая содержит время timedata <- "08:39:41:759:520" Я хочу преобразовать это значение строки даты в миллисекунды.

Примечание: Я пытался с помощью следующих команд: as.POSIXct(timedata)

Выдает следующую ошибку: Error in as.POSIXlt.character(x, tz, ...) : character string is not in a standard unambiguous format

Как мне решить эту проблему и преобразовать данные в формат миллисекунд / микросекунд

1 Ответ

0 голосов
/ 05 ноября 2018

Вам нужно сначала исправить введенную строку. Я предполагаю, что это hours:minutes:seconds:milliseconds:microseconds.

timedata <- "08:39:41:759:520"

#replace last two :
timedata <- gsub(":(?=\\d*$)", ".", 
     gsub(":(?=\\d*$)", "", 
          timedata, 
          perl = TRUE), 
     perl = TRUE)

#coerce to POSIXct and subtract current date
timedata <- as.numeric(as.POSIXct(timedata, '%H:%M:%OS', tz='UTC')) - 
  as.numeric(as.POSIXct(Sys.Date()))

#this is a floating point number, print digits of interest (following digits can't be zero)
sprintf("%.6f",timedata)
#[1] "31181.759520"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...