From ed9dcd5d40e2c1540ba6c67bd58a696cea20211f Mon Sep 17 00:00:00 2001
From: Raimon Tolosana-Delgado <tolosa53@fwg206.ad.fz-rossendorf.de>
Date: Wed, 30 Jun 2021 09:12:39 +0200
Subject: [PATCH] bug in xvErrorMeasures for simulated output corrected

---
 DESCRIPTION  |  2 +-
 NEWS.md      |  5 +++++
 R/accuracy.R | 16 +++++++++++++---
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index 575aded..a2f6fde 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,5 +1,5 @@
 Package: gmGeostats
-Version: 0.10-7.9004
+Version: 0.10-7.9005
 Date: 2020-10-05
 Title: Geostatistics for Compositional Analysis
 Authors@R: c(person(given = "Raimon", 
diff --git a/NEWS.md b/NEWS.md
index 18076b0..ffb8bde 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,8 @@
+# gmGeostats 0.10.7.9005
+
+* (2021-06-30) bugs in xvErrorMeasures() for simulated data corrected
+* (2021-06-30) bugs in accuracy() and precision() corrected
+
 # gmGeostats 0.10.7.9004
 
 * (2021-06-29) bugs in accuracy() and precision() corrected
diff --git a/R/accuracy.R b/R/accuracy.R
index 887c1e8..2727592 100644
--- a/R/accuracy.R
+++ b/R/accuracy.R
@@ -387,7 +387,17 @@ xvErrorMeasures.DataFrameStack = function(x, observed, output="ME",
   
   outputs = c("ME","MSE")
   output = outputs[pmatch(output, outputs, duplicates.ok = TRUE)]
-  mn = gmApply(x, FUN=colMeans)
-  class(mn) = "data.frame"
-  xvErrorMeasures(mn, observed, output, univariate)
+  dims = noStackDim(x)
+  dims = c(ifelse(is.numeric(dims), 1, "loc"), dims)
+  mn = gmApply(x, MARGIN=dims, FUN=mean)
+  # class(mn) = "data.frame"
+  # xvErrorMeasures(mn, observed, output, univariate=TRUE)
+  
+  resids = mn-observed
+  myfun = function(output){
+    if(output=="ME") return(colMeans(resids, na.rm=TRUE))
+    if(output=="MSE") return(mean(rowSums(resids^2, na.rm=T), na.rm=TRUE))
+  }
+  
+  return(sapply(outputs, myfun))
 }
-- 
GitLab