diff --git a/NAMESPACE b/NAMESPACE index 703e734f1cd65eb4cef4a3c888a1580c04936030..baf7650f05ee93b64308a15c25aa4e464adc91eb 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -32,6 +32,7 @@ export(mortalityTable.trendProjection) export(mortalityTable.zeroes) export(mortalityTables.list) export(mortalityTables.load) +export(pT.getSubTable) export(pensionTable) export(pensionTables.list) export(pensionTables.load) diff --git a/R/utilityFunctions.R b/R/utilityFunctions.R index bdfdd03c14cbdbe008e46f5abe7d27090daa4fc2..14831df5371804be304eb870be0d786cabec6c6c 100644 --- a/R/utilityFunctions.R +++ b/R/utilityFunctions.R @@ -284,3 +284,22 @@ mT.setDimInfo = function(table, ..., append = TRUE) { table } + +#' @export +pT.getSubTable = function(table, subtable = "qx") { + if (is.array(table)) { + return(array( + lapply(table, pT.getSubTable, subtable = subtable), + dim = dim(table), dimnames = dimnames(table)) + ) + } else if (is.list(table)) { + return(lapply(table, pT.getSubTable, subtable = subtable)) + } + if (!is(table, "pensionTable")) + stop("First argument must be a pensionTable or a list of pensionTable objects.") + + if (.hasSlot(table, subtable)) + slot(table, subtable) + else + NULL +}