diff --git a/DESCRIPTION b/DESCRIPTION index 643d817b9f2513e8fb328ada82c1f8d3af7ece06..ae71c9322d591a65b6fe75b70069d0abe311dfea 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -43,6 +43,7 @@ Collate: 'lifeTable.R' 'makeQxDataFrame.R' 'mortalityComparisonTable.R' + 'mortalityImprovement.R' 'periodDeathProbabilities.R' 'mortalityTable.jointLives.R' 'mortalityTables.list.R' diff --git a/NAMESPACE b/NAMESPACE index 17c93db2ea123df13ec4dc4987382fceedb49e41..b72be70efb216965aa2ca46b2298082af8969fbb 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -43,6 +43,7 @@ exportMethods(getCohortTable) exportMethods(getOmega) exportMethods(getPeriodTable) exportMethods(lifeTable) +exportMethods(mortalityImprovement) exportMethods(periodDeathProbabilities) exportMethods(periodTransitionProbabilities) exportMethods(setLoading) diff --git a/R/mortalityImprovement.R b/R/mortalityImprovement.R new file mode 100644 index 0000000000000000000000000000000000000000..b4b1eaa456c9bf28a5271870c9472579e1c9c8ea --- /dev/null +++ b/R/mortalityImprovement.R @@ -0,0 +1,32 @@ +#' @include mortalityTable.R mortalityTable.period.R mortalityTable.ageShift.R mortalityTable.trendProjection.R mortalityTable.improvementFactors.R mortalityTable.mixed.R +NULL + +#' Return the mortality trend / yearly log-mortality improvement of the given period or the given generation. +#' +#' @param object The life table object (class inherited from mortalityTable) +#' @param ... Other parameters (currently unused) +#' @param YOB The birth year for which the mortality improvement should be calculated +#' @param Period The observation year for which the mortality improvement should be calculated. If both YOB and Period are given, YOB is ignored. +#' +#' @exportMethod mortalityImprovement +setGeneric("mortalityImprovement", function(object, ..., Period = NULL, YOB = 1975) standardGeneric("mortalityImprovement")); + +#' @describeIn mortalityImprovement Return the yearly log-mortality improvement of the +#' life table given the birth or observation year +setMethod("mortalityImprovement", "mortalityTable", + function(object, ..., Period = NULL, YOB = 1975) { + ages = ages(object) + if (missing(Period) || is.null(Period)) { + # Improvement for generation YOB + qt1 = deathProbabilities(object, ..., YOB = YOB - 1) + qt = deathProbabilities(object, ..., YOB = YOB) + } else { + # Improvement for observation year Period + qt1 = periodDeathProbabilities(object, ..., Period = Period - 1) + qt = periodDeathProbabilities(object, ..., Period = Period) + } + lambda = -log(qt/qt1); + names(lambda) = ages; + lambda + }) + diff --git a/man/mortalityImprovement.Rd b/man/mortalityImprovement.Rd new file mode 100644 index 0000000000000000000000000000000000000000..346fd387330e4347f49694883550821257dff944 --- /dev/null +++ b/man/mortalityImprovement.Rd @@ -0,0 +1,31 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/mortalityImprovement.R +\docType{methods} +\name{mortalityImprovement} +\alias{mortalityImprovement} +\alias{mortalityImprovement,mortalityTable-method} +\title{Return the mortality trend / yearly log-mortality improvement of the given period or the given generation.} +\usage{ +mortalityImprovement(object, ..., Period = NULL, YOB = 1975) + +\S4method{mortalityImprovement}{mortalityTable}(object, ..., Period = NULL, + YOB = 1975) +} +\arguments{ +\item{object}{The life table object (class inherited from mortalityTable)} + +\item{...}{Other parameters (currently unused)} + +\item{Period}{The observation year for which the mortality improvement should be calculated. If both YOB and Period are given, YOB is ignored.} + +\item{YOB}{The birth year for which the mortality improvement should be calculated} +} +\description{ +Return the mortality trend / yearly log-mortality improvement of the given period or the given generation. +} +\section{Methods (by class)}{ +\itemize{ +\item \code{mortalityTable}: Return the yearly log-mortality improvement of the +life table given the birth or observation year +}} +