Преобразование даты и времени символа в миллисекундах в число в R
У меня есть следующий вектор метки времени:
Timestamp <- c("30-09-2016 11:45:00.000", "01-10-2016 06:19:57.860", "01-10-2016 06:20:46.393")
Отметка времени является частью таблицы (к сожалению, она не является data.frame...), которая содержит другие столбцы градусов и веса:
Timestamp Weight Degrees
1 30-09-2016 11:45:00.000 38.19 40.00
2 01-10-2016 06:19:57.860 39.12 40.00
3 01-10-2016 06:20:46.393 42.11 41.00
Я хотел бы отобразить Weight против Timestamp, но режим Timestamp - это "символ", что означает, что ось x не читается должным образом. Хотели бы вы предложить преобразовать это в числовое значение?
я пытался as.Date(Timestamp,format='%d-%m-%Y %H:%M:%OS3')
но это не похоже на работу.
2 ответа
Как сказал Эрдем, с as.POSIXct
с %OS
на секунды
t1 <- c("30-09-2016 11:45:00.000", "01-10-2016 06:19:57.860", "01-10-2016 06:20:46.393")
t2 <- as.POSIXct(t1,format = "%d-%m-%Y %H:%M:%OS")
обратите внимание, что временные метки отображаются / печатаются в целых секундах по умолчанию; увидеть digits.secs
в ?options
t2
[1] "2016-09-30 11:45:00 EDT" "2016-10-01 06:19:57 EDT" "2016-10-01 06:20:46 EDT"
но разрешение в миллисекундах поддерживается внутри
diff(t2)
Time differences in secs
[1] 66897.860 48.533
если вы хотите отобразить / распечатать разрешение в миллисекундах с помощью
options(digits.secs=3)
t2
[1] "2016-09-30 11:45:00.000 EDT" "2016-10-01 06:19:57.859 EDT" "2016-10-01 06:20:46.392 EDT"
С as.POSIXct
as.POSIXct(Timestamp,format = "%d-%m-%Y %H:%M:%S.%OS")