Hi, all.
I've written a function that returns the survival function for a Gompertz mortality model. I've specified the two model parameters. With a calculation that includes a simple integration, I can calculate the life expectancy at any age. Is there a way I can use a loop with the integration that will quickly return life expectancy over a range of ages, say 0 to 80, so that I don't have to manually type in the age in which I'm interested? You can copy and paste the code below to see an example. Thanks so much.
--Trey
I've written a function that returns the survival function for a Gompertz mortality model. I've specified the two model parameters. With a calculation that includes a simple integration, I can calculate the life expectancy at any age. Is there a way I can use a loop with the integration that will quickly return life expectancy over a range of ages, say 0 to 80, so that I don't have to manually type in the age in which I'm interested? You can copy and paste the code below to see an example. Thanks so much.
--Trey
Code:
hk.bothsex_Gompsurv <- function (t)
{
x=c(0.02342671, 0.05837508)
a3<-x[1]
b3<-x[2]
shift<-15
S.t<-exp(a3/b3*(1-exp(b3*(t-shift))))
return<-S.t
}
integrate(hk.bothsex_Gompsurv,0,Inf)$value/hk.bothsex_Gompsurv(0) # life expectancy at birth (change lower limit of integral and corresponding "t" in denominator to calculate life expectancy at any age