Как разобрать миллисекунды?


86

Как использовать strptimeили какие-либо другие функции для анализа меток времени с миллисекундами в R?

time[1]
# [1] "2010-01-15 13:55:23.975"
strptime(time[1], format="%Y-%m-%d %H:%M:%S.%f")
# [1] NA
strptime(time[1], format="%Y-%m-%d %H:%M:%S")
# [1] "2010-01-15 13:55:23"`

Ответы:


123

Предоставлено ?strptimeфайлом справки (пример изменен на ваше значение):

 z <- strptime("2010-01-15 13:55:23.975", "%Y-%m-%d %H:%M:%OS")
 z # prints without fractional seconds
 op <- options(digits.secs=3)
 z
 options(op) #reset options

Спасибо, я пропустил это в документе strptime. Я искал символ формата и сдался, когда его не увидел.
signalseeker

8
Если бы я мог поставить памятник в вашу честь, я бы сделал это!
jkff 01

2
я бы тоже! Бит "% OS" потрясающий.
Pierre D

Это только в python3 или что-то в этом роде? В моем python2.7.8: >>> time.strptime (t, "% Y-% m-% d% H:% M:% OS") Traceback (последний вызов последним): файл "<stdin>", строка 1, в <module> файле "/opt/pythons/2.7.8/lib/python2.7/_strptime.py", строка 467, в _strptime_time return _strptime (data_string, format) [0] File "/ opt / pythons / 2.7.8 / lib / python2.7 / _strptime.py ", строка 317, в _strptime (bad_directive, format)) ValueError: 'O' - неправильная директива в формате '% Y-% m-% d% H:% M:% OS '
firebush

1
@firebush: Это в R. Для некоторых платформ может потребоваться "% Y-% m-% d% H:% M:% OS3". Реализация формата «ОС» помечена как зависящая от ОС на страницах справки.
IRTFM

31

Вы также можете использовать strptime(time[1], "%OSn")where 0 <= n <= 6 без необходимости устанавливать digits.secs.

В документации указано: «Какие из них поддерживаются, зависит от ОС». так YMMV.


2
У меня это тоже не сработало на Ubuntu. Это дает NA.
Prakash
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.