2014-09-28 6 views
6

Gibt es eine Funktion/Paket, die Jahr Bruch (Unterschiede zwischen zwei Datumsangaben) mit anderen Tag-Konvention zählen, wie JahrFrac() in Matlab? Ich muss Actual/365 Konvention verwenden.Jahr Brüche mit Actual/365 Konvention in R

+5

'Rquantlib' hat viele Tageszähler' Actual360', 'Actual365' .... – agstudy

Antwort

4
rollYourOwn <- function(D, origin=as.Date("1970-01-01")) { 
    if (!inherits(D, "Date")) 
    D <- as.Date(D, origin=origin) 
    as.numeric(D - as.Date(format(D, "%Y-01-01"), origin=origin) + 1)/365 
} 

rollYourOwn("2014-01-01") 
# [1] 0.00273973 

rollYourOwn(Sys.Date()) 
# [1] 0.742466 

rollYourOwn("2014-12-31") 
# [1] 1 
+0

nur sicherstellen, dass Sie das Datum –

+3

richtig Was formatiert ist das gewünschte Verhalten für Schaltjahre? Zum Beispiel ist 'rollYourOwn (" 2012-12-31 ")' größer als eins. Ist das richtig? –

+1

@RichieCotton es hängt vom Markt ab. Dies ist eine Implementierung von Actual/365 Fixed. Actual/365 würde Schaltjahre anders behandeln. http://support.treasuryview.com/kb/treasury/day-count-convention ... edit: es gibt wahrscheinlich eine zuverlässigere Quelle da draußen, ich habe nur das erste Ding ausgewählt, das ich in Google gesehen habe – GSee