Преобразование даты и времени символа в миллисекундах в число в 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")
Другие вопросы по тегам