From bb9e493b9b12a38bb051ad6845f7c4534d0e113c Mon Sep 17 00:00:00 2001
From: Luke Zappia <lazappi@users.noreply.github.com>
Date: Wed, 14 Aug 2019 13:59:59 +1000
Subject: [PATCH] Fix bug in selectFit

Handle missing (not NA) AIC values
---
 DESCRIPTION          | 4 ++--
 NEWS.md              | 4 ++++
 R/splotch-estimate.R | 8 ++++++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index b2a14bf..237c3be 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,8 +1,8 @@
 Package: splatter
 Type: Package
 Title: Simple Simulation of Single-cell RNA Sequencing Data
-Version: 1.9.3.9006
-Date: 2019-08-13
+Version: 1.9.3.9007
+Date: 2019-08-14
 Author: Luke Zappia
 Authors@R:
     c(person("Luke", "Zappia", role = c("aut", "cre"),
diff --git a/NEWS.md b/NEWS.md
index eec7a01..325e91f 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,7 @@
+### Version 1.9.3.9007 (2019-08-14)
+
+* Fix bug in selectFit
+
 ### Version 1.9.3.9006 (2019-08-13)
 
 * Add splotchEstimate function
diff --git a/R/splotch-estimate.R b/R/splotch-estimate.R
index 93f7996..7e3230f 100644
--- a/R/splotch-estimate.R
+++ b/R/splotch-estimate.R
@@ -164,10 +164,14 @@ selectFit <- function(data, distr, weights = NULL, verbose = TRUE) {
     }
 
     aics <- fitdistrplus::gofstat(fits)$aic
-    selected <- which(aics == min(aics, na.rm = TRUE))
+    # Flatten in case aics is a list
+    aics.flat <- unlist(aics)
+    selected <- which(aics.flat == min(aics.flat, na.rm = TRUE))
 
     if (verbose) {
-        message("Selected ", names(fits)[selected], " fit using AIC")
+        # Work around to get name in case aics is a list
+        name <- names(fits)[names(aics) == names(aics.flat)[selected]]
+        message("Selected ", name, " fit using AIC")
     }
 
     return(fits[[selected]])
-- 
GitLab