From a02be113df50b3b224c9f255385ae03098a21ecc Mon Sep 17 00:00:00 2001
From: Reinhold Kainhofer <reinhold@kainhofer.com>
Date: Tue, 17 Aug 2021 01:20:50 +0200
Subject: [PATCH] add function mT.getName to retrieve a table's name (also from
 arrays of tables)

---
 NAMESPACE            |  1 +
 R/utilityFunctions.R | 26 ++++++++++++++++++++++++++
 man/mT.getName.Rd    | 19 +++++++++++++++++++
 3 files changed, 46 insertions(+)
 create mode 100644 man/mT.getName.Rd

diff --git a/NAMESPACE b/NAMESPACE
index 76f5fef..f470866 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -12,6 +12,7 @@ export(mT.extrapolateTrendExp)
 export(mT.fillAges)
 export(mT.fitExtrapolationLaw)
 export(mT.getDimInfo)
+export(mT.getName)
 export(mT.scaleProbs)
 export(mT.setDimInfo)
 export(mT.setName)
diff --git a/R/utilityFunctions.R b/R/utilityFunctions.R
index aee3282..388771c 100644
--- a/R/utilityFunctions.R
+++ b/R/utilityFunctions.R
@@ -108,6 +108,32 @@ mT.setName = function(table, name) {
     table
 }
 
+#' Retrieves the name of the given mortality table or the list/table/array of mortalityTables
+#'
+#' @param table A life table object (instance of a \code{mortalityTable} class) or a list, table or array of mortalityTable objects
+#'
+#' @examples
+#' mortalityTables.load("Austria_Annuities")
+#' mT.getName(AVOe2005R.male)
+#'
+#' @export
+mT.getName = function(table) {
+    if (is.array(table)) {
+        return(array(
+            lapply(table, mT.getName),
+            dim = dim(table), dimnames = dimnames(table))
+        )
+    } else if (is.list(table)) {
+        return(lapply(table, mT.getName))
+    } else if (is.na(c(table))) {
+        return(table)
+    }
+    if (!is(table, "mortalityTable"))
+        stop("First argument must be a mortalityTable or a list of mortalityTable objects.")
+
+    table@name
+}
+
 
 #' Restrict/expand a mortalityTable to certain ages
 #'
diff --git a/man/mT.getName.Rd b/man/mT.getName.Rd
new file mode 100644
index 0000000..55ad671
--- /dev/null
+++ b/man/mT.getName.Rd
@@ -0,0 +1,19 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/utilityFunctions.R
+\name{mT.getName}
+\alias{mT.getName}
+\title{Retrieves the name of the given mortality table or the list/table/array of mortalityTables}
+\usage{
+mT.getName(table)
+}
+\arguments{
+\item{table}{A life table object (instance of a \code{mortalityTable} class) or a list, table or array of mortalityTable objects}
+}
+\description{
+Retrieves the name of the given mortality table or the list/table/array of mortalityTables
+}
+\examples{
+mortalityTables.load("Austria_Annuities")
+mT.getName(AVOe2005R.male)
+
+}
-- 
GitLab