Construct either a full or abridged life table with various input choices like: death counts and mid-interval population estimates (Dx, Ex) or age-specific death rates (mx) or death probabilities (qx)
or survivorship curve (lx) or a distribution of deaths (dx). If one of these options is specified, the other can be ignored. The input data can be an object of class: numerical vector, matrix or data.frame.
LifeTable(x, Dx =NULL, Ex =NULL, mx =NULL, qx =NULL, lx =NULL, dx =NULL, sex =NULL, lx0 =1e5, ax =NULL)
Arguments
x: Vector of ages at the beginning of the age interval.
Dx: Object containing death counts. An element of the Dx object represents the number of deaths during the year to persons aged x to x+n.
Ex: Exposure in the period. Ex can be approximated by the mid-year population aged x to x+n.
mx: Life table death rate in age interval [x, x+n).
qx: Probability of dying in age interval [x, x+n).
lx: Probability of survival up until exact age x (if l(0) = 1), or the number of survivors at exact age x, assuming l(0) > 1.
dx: Deaths by life-table population in the age interval [x, x+n).
sex: Sex of the population considered here. Default: NULL. This argument affects the first two values in the life table ax column. If sex is specified the values are computed based on the Coale-Demeny method and are slightly different for males than for females. Options: NULL, male, female, total.
lx0: Radix. Default: 100 000.
ax: Numeric scalar. Subject-time alive in age-interval for those who die in the same interval. If NULL this will be estimated. A common assumption is ax = 0.5, i.e. the deaths occur in the middle of the interval. Default: NULL.
Returns
The output is of the "LifeTable" class with the components: - lt: Computed life table;
call: Call in which all of the specified arguments are specified by their full names;
process_date: Time stamp.
Details
The "life table" is also called "mortality table" or "actuarial table". This shows, for each age, what the probability is that a person of that age will die before his or her next birthday, the expectation of life across different age ranges or the survivorship of people from a certain population.
Examples
# Example 1 --- Full life tables with different inputs ---y <-1900x <- as.numeric(rownames(ahmd$mx))Dx <- ahmd$Dx[, paste(y)]Ex <- ahmd$Ex[, paste(y)]LT1 <- LifeTable(x, Dx = Dx, Ex = Ex)LT2 <- LifeTable(x, mx = LT1$lt$mx)LT3 <- LifeTable(x, qx = LT1$lt$qx)LT4 <- LifeTable(x, lx = LT1$lt$lx)LT5 <- LifeTable(x, dx = LT1$lt$dx)
LT1
LT5
ls(LT5)# Example 2 --- Compute multiple life tables at once ---LTs = LifeTable(x, mx = ahmd$mx)LTs
# A warning is printed if the input contains missing values.# Some of the missing values can be handled by the function.# Example 3 --- Abridged life table ------------x <- c(0,1, seq(5,110, by =5))mx <- c(.053,.005,.001,.0012,.0018,.002,.003,.004,.004,.005,.006,.0093,.0129,.019,.031,.049,.084,.129,.180,.2354,.3085,.390,.478,.551)LT6 <- LifeTable(x, mx = mx, sex ="female")LT6
# Example 4 --- Abridged life table w using my own 'ax' ------------# In this examples we are using the ages (x) and death rates (mx) from# example 3. Note that 'ax' must have the same length as the 'x' vector# otherwise an error message will be returned.my_ax <- c(0.1,1.5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1)LT7 <- LifeTable(x = x, mx = mx, ax = my_ax)