2016-10-04 60 views
5

Ben bu biçimde tarihleri ​​sayıda var:R'ye kısmi zamanları nasıl ekleyebilirim?

dt = as.POSIXct("2004-04-02 12:45:00 UTC") 

Ve ben eklemek/hep numbers.I lubridate kitaplığı kullanıyorum bütün olmayabilir sayıları çıkarmak zorunda.

Örnek:

dt - days(2) 
[1] "2004-03-31 12:45:00 UTC" 

Ama

dt - days(1.5) 
Error in validObject(.Object) : 
    invalid class “Period” object: periods must have integer values 

bu işlem için bir alternatif var mı?

+0

İyi soru. Eğer sadece R, yağmuru dışında başka tarih/zaman fonksiyonlarına sahip olsaydı. –

cevap

7

Hata, kesirli dönemlere izin vermeyen days(1.5) ile gerçekleşiyor. Sen yapabilirdi:

dt - days(1) - hours(12) 

veya

dt - 1.5*24*3600 

ya bu da işe yarayacağını hakkında @DirkEddelbuettel gibi adamlar biliyorum bir temel tarih fonksiyonu muhtemelen var. Ah, bu difftime (Bu şeyleri başımın üstünden hatırlayacak kadar tarihle çalışmıyorum). @maximusdooku tarafından işaret edildiği gibi
dt - as.difftime(1.5, units="days") 

Ve: ddays sadece istenen sürede saniye sayısını artı bazı sınıf bilgilerini döndürür gibi kod dayanarak

dt - ddays(1.5) 

(görünüyor.)

+0

Çok iyi bitti :) –

+0

Teşekkürler. Ayrıca ddays ve dminutes keşfettim. dt - dgün (1.5) – maximusdooku