Як проаналізувати мілісекунди?


85

Як я можу використовувати 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"`

Відповіді:


121

Надано ?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 doc. Я шукав форматного персонажа і кинув, коли не побачив.
шукач сигналів

8
Якби я міг поставити меморіал на вашу честь, я б!
jkff

2
я б теж! Біт "% OS" чудовий.
Pierre D

Це лише в python3 чи щось інше? У моєму python2.7.8: >>> time.strptime (t, "% Y-% m-% d% H:% M:% OS") Відстеження (останній останній дзвінок): Файл "<stdin>", рядок 1, у <module> Файл "/opt/pythons/2.7.8/lib/python2.7/_strptime.py", рядок 467, у _strptime_time return _strptime (data_string, format) [0] Файл "/ 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")де 0 <= n <= 6, не встановлюючи digits.secs.

У документації зазначено "Які з них підтримуються, залежить від ОС". так YMMV.


2
Це теж не спрацювало у мене на Ubuntu. Це дає НС.
Пракаш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.