Возможно, это более расширенный комментарий.
eeptools::age_calc
, кажется, вычисляет возраст в месяцах нетрадиционным способом (вы можете увидеть исходный код, когда наберете age_calc
в терминал R и нажмете Enter).
Возможно, более канонический способ вычислить возраст между двумя датами в месяцах - это просто разделить интервал на единицу продолжительности. Соответствующее и интересное сообщение: Получите разницу между датами по неделям, месяцам, кварталам и годам .
Из указанного поста @Gregor определил удобную функцию, которая делает что-то похожее на eeptools::age_calc
library(lubridate)
age <- function(dob, age.day = today(), units = "years", floor = TRUE) {
calc.age = interval(dob, age.day) / duration(num = 1, units = units)
if (floor) return(as.integer(floor(calc.age)))
return(calc.age)
}
Используя age
, мы получим
age(
as.Date("10/30/18",format="%m/%d/%y"),
as.Date("3/1/19",format="%m/%d/%y"),
units="months", floor = FALSE)
#[1] 4.010959
age(
as.Date("10/30/18",format="%m/%d/%y"),
as.Date("3/2/19",format="%m/%d/%y"),
units="months", floor = FALSE)
#[1] 4.043836
Эти значения соответствуют значениям, например, Вольфрам Альфа дает на те же даты.