Milisaniyeler nasıl ayrıştırılır?


86

strptimeR cinsinden milisaniye ile zaman damgalarını ayrıştırmak için nasıl kullanılır veya diğer işlevleri nasıl kullanabilirim ?

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"`

Yanıtlar:


123

?strptimeYardım dosyasının izniyle ( örnek değeriniz olarak değiştirildi):

 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

Teşekkürler, bunu strptime belgesinde kaçırdım. Bir format karakteri arıyordum ve görmediğimde pes ettim.
signalseeker

8
Şerefinize bir anıt koyabilseydim, yapardım!
jkff

2
ben de öyle! "% OS" biti harika.
Pierre D

Bu sadece python3 veya başka bir şey mi? Benim python2.7.8'de: >>> time.strptime (t, "% Y-% m-% d% H:% M:% OS") Geri İzleme (en son çağrı son): Dosya "<stdin>", satır 1, <module> Dosya "/opt/pythons/2.7.8/lib/python2.7/_strptime.py", satır 467, _strptime_time dönüş _strptime (data_string, format) [0] Dosya "/ opt / pythons / 2.7.8 / lib / python2.7 / _strptime.py ", satır 317, _strptime (bad_directive, format)) ValueError:" O ", '% Y-% m-% d% H:% biçiminde kötü bir yönergedir M:% OS '
firebush

1
@firebush: R. içinde. Bazı platformlarda "% Y-% m-% d% H:% M:% OS3" gerektirebilir. "OS" biçiminin uygulanması, yardım sayfalarında İşletim Sistemine özgü olarak etiketlenmiştir.
IRTFM

31

Ayrıca strptime(time[1], "%OSn"), 0 <= n <= 6 nerede, ayarlamak zorunda kalmadan da kullanabilirsiniz digits.secs.

Belgelerde "Aşağıdakilerden hangisi desteklenir işletim sistemine bağlıdır" belirtir. yani YMMV.


2
Bu benim için Ubuntu'da da işe yaramadı. Bu NA verir.
Prakash
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.