Existe-t-il une méthode/formule standard/commune pour calculer le nombre de mois entre deux dates dans R ?
Je cherche quelque chose qui soit similaire à Fonction mois de MathWorks
Existe-t-il une méthode/formule standard/commune pour calculer le nombre de mois entre deux dates dans R ?
Je cherche quelque chose qui soit similaire à Fonction mois de MathWorks
library(lubridate)
cas1 : fonction naïve
mos<-function (begin, end) {
mos1<-as.period(interval(ymd(begin),ymd(end)))
mos<-mos1@year*12+mos1@month
mos
}
cas2 : si vous devez considérer uniquement le 'Mois' sans tenir compte du 'Jour'.
mob<-function (begin, end) {
begin<-paste(substr(begin,1,6),"01",sep="")
end<-paste(substr(end,1,6),"01",sep="")
mob1<-as.period(interval(ymd(begin),ymd(end)))
mob<-mob1@year*12+mob1@month
mob
}
Exemple :
mos(20150101,20150228) # 1
mos(20150131,20150228) # 0
# you can use "20150101" instead of 20150101
mob(20150131,20150228) # 1
mob(20150131,20150228) # 1
# you can use a format of "20150101", 20150101, 201501
library(lubridate)
date1 = "1 April 1977"
date2 = "7 July 2017"
date1 = dmy(date1)
date2 = dmy(date2)
number_of_months = (year(date1) - year(date2)) * 12 + month(date1) - month(date2)
Différence en mois = 12 * différence en années + différence en mois.
Il peut être nécessaire de corriger les points suivants en utilisant
ifelse
condition pour les soustractions du mois
Vous pouvez utiliser la fonction as.yearmon() du paquet zoo. Cette fonction convertit une variable de type Date en une variable de type année-mois. Vous pouvez soustraire deux variables de type année-mois, puis les multiplier par 12 pour obtenir la différence en mois comme suit :
12 * (as.yearmon(Date1) - as.yearmon(Date2))
Différence de date en mois
$date1 = '2017-01-20';
$date2 = '2019-01-20';
$ts1 = strtotime($date1);
$ts2 = strtotime($date2);
$year1 = date('Y', $ts1);
$year2 = date('Y', $ts2);
$month1 = date('m', $ts1);
$month2 = date('m', $ts2);
echo $joining_months = (($year2 - $year1) * 12) + ($month2 - $month1);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.