From f9c4c3fa21c6ab6af1f34cbe764f8fb471cacfbb Mon Sep 17 00:00:00 2001
From: Reinhold Kainhofer <reinhold@kainhofer.com>
Date: Tue, 13 Sep 2016 22:43:09 +0000
Subject: [PATCH] Allow loading mortality table datasets from other packages

The mortalityTAbles.list and mortalityTables.load functions now have an additional parameter package, where one can give a third-party package that holds the dataset in extdata/MortalityTables_....R
---
 R/mortalityTables.list.R |  8 +++++---
 R/mortalityTables.load.R | 11 ++++++-----
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/R/mortalityTables.list.R b/R/mortalityTables.list.R
index 7ff5830..fc72a75 100644
--- a/R/mortalityTables.list.R
+++ b/R/mortalityTables.list.R
@@ -2,11 +2,13 @@
 #' An existing life table can then be loaded with \link{mortalityTables.load}.
 #'
 #' @param pattern Restrict the results only to life table sets that match the pattern (default: "*" to show all sets)
+#' @param package The package that contains the desired dataset in its \code{extdata/}
+#'                directory. Defaults to the "MortalityTables" package.
 #'
 #' @export
-mortalityTables.list = function(pattern="*") {
-    filepath = system.file("extdata", package="MortalityTables");
-    files = Sys.glob(file.path(filepath, paste("MortalityTables_", pattern, ".R", sep="")))
+mortalityTables.list = function(pattern = "*", package = "MortalityTables") {
+    filepath = system.file("extdata", package = package);
+    files = Sys.glob(file.path(filepath, paste("MortalityTables_", pattern, ".R", sep = "")))
     gsub('^MortalityTables_(.*).R$', '\\1', basename(files))
 }
 
diff --git a/R/mortalityTables.load.R b/R/mortalityTables.load.R
index 6aa3848..f0426db 100644
--- a/R/mortalityTables.load.R
+++ b/R/mortalityTables.load.R
@@ -4,23 +4,24 @@
 #'                data sets is provided by the function \code{\link{mortalityTables.list}}.
 #' @param wildcard Whether the dataset name contains wildcard. If TRUE, all
 #'                 datasets matching the pattern will be loaded
+#' @param package The package that contains the dataset in its \code{extdata/}
+#'                directory. Defaults to the "MortalityTables" package.
 #'
 #' @export
-mortalityTables.load = function(dataset, wildcard=FALSE) {
+mortalityTables.load = function(dataset, wildcard=FALSE, package="MortalityTables") {
     if (wildcard) {
-        sets = mortalityTables.list(dataset);
+        sets = mortalityTables.list(dataset, package = package);
     } else {
         sets = c(dataset);
     }
     for (set in sets) {
         sname = gsub("[^-A-Za-z0-9_.]", "", set);
         message("Loading mortality table data set '", sname, "'");
-        filename = system.file("extdata", paste("MortalityTables_", sname, ".R", sep = ""), package="MortalityTables");
+        filename = system.file("extdata", paste("MortalityTables_", sname, ".R", sep = ""), package = package);
         if (filename != "") {
             sys.source(filename, envir = globalenv())
-            #envir=topenv())
         } else {
-            warning(sprintf("Unable to locate dataset '%s' provided by the MortalityTables package!", sname));
+            warning(sprintf("Unable to locate dataset '%s' provided by the %s package!", sname, package));
         }
     }
 }
-- 
GitLab