Jak analizować milisekundy?


85

Jak używać strptimelub innych funkcji do analizowania znaczników czasu z milisekundami w języku 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"`

Odpowiedzi:


122

Dzięki uprzejmości ?strptimepliku pomocy (z przykładem zmienionym na Twoją wartość):

 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

Dzięki, przegapiłem to w dokumencie strptime. Szukałem postaci formatu i poddałem się, gdy jej nie widziałem.
szukający sygnału

8
Gdybym mógł postawić pomnik na twoją cześć, zrobiłbym to!
jkff

2
więc mógłbym! Bit „% OS” jest niesamowity.
Pierre D

Czy to tylko w pythonie3 czy coś takiego? W moim pythonie2.7.8: >>> time.strptime (t, "% Y-% m-% d% H:% M:% OS") Traceback (ostatnie wywołanie ostatnie): Plik "<stdin>", wiersz 1, w <module> File "/opt/pythons/2.7.8/lib/python2.7/_strptime.py", wiersz 467, w _strptime_time return _strptime (data_string, format) [0] File "/ opt / pythons / 2.7.8 / lib / python2.7 / _strptime.py ", wiersz 317, in _strptime (bad_directive, format)) ValueError:„ O ”to zła dyrektywa w formacie„% Y-% m-% d% H:% M:% OS '
firebush

1
@firebush: Jest w R. Na niektórych platformach może wymagać „% Y-% m-% d% H:% M:% OS3”. Implementacja formatu „OS” jest oznaczona na stronach pomocy jako specyficzna dla systemu operacyjnego.
IRTFM

31

Możesz również użyć, strptime(time[1], "%OSn")gdzie 0 <= n <= 6, bez konieczności ustawiania digits.secs.

Dokumentacja stwierdza, że ​​„które z nich są obsługiwane, zależy od systemu operacyjnego”. więc YMMV.


2
To też nie zadziałało na Ubuntu. To daje NA.
Prakash
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.