From 1b1132395066140a4829b2811619b531b44c0ea0 Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Sat, 28 Jul 2018 19:34:05 +0200 Subject: [PATCH] Add pT.getSubTable to extract sub-tables of pensionTable objects --- NAMESPACE | 1 + R/utilityFunctions.R | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/NAMESPACE b/NAMESPACE index 703e734..baf7650 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 bdfdd03..14831df 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 +} -- GitLab