web-dev-qa-db-fra.com

Obtenir la différence de date en années (virgule flottante)

Je souhaite corriger l'activité de la source en fonction de la différence entre la date de référence et la date de mesure et la demi-vie de la source (mesurée en années). Dis que j'ai

ref_date <- as.Date('06/01/08',format='%d/%m/%y')

et une colonne dans mon data.frame avec le même format de date, par exemple,

today <- as.Date(Sys.Date(), format='%d/%m/%y')

Je peux trouver le nombre d'années entre ces dates en utilisant le package lubridate

year(today)-year(ref_date)
[1] 5

Existe-t-il une fonction que je peux utiliser pour obtenir une réponse en virgule flottante today - ref_date = 5,2 ans, par exemple?

29
moadeep

Vous pouvez utiliser la fonction AnnivDates() du package BondValuation :

R> library('BondValuation')
R> DateIndexes <- unlist(
+   suppressWarnings(
+     AnnivDates("2001-01-01", "2003-04-05", CpY=1)$DateVectors[2]
+     )
+   )
R> names(DateIndexes) <- NULL
R> DateIndexes[length(DateIndexes)] - DateIndexes[1]
[1] 2.257534

Cliquez sur ici pour la documentation du package BondValuation .

0
01wadjat