SpssReader: handle StringValues properly. default tip
authorTomas Zeman <tomas@functionals.cz>
Tue, 21 Jul 2020 17:16:53 +0200
changeset 9 0bcde61ea869
parent 8 7d705a7b1867
SpssReader: handle StringValues properly.
jvm/src/net/tz/spss/SpssReader.scala
--- a/jvm/src/net/tz/spss/SpssReader.scala	Tue Jul 21 17:01:27 2020 +0200
+++ b/jvm/src/net/tz/spss/SpssReader.scala	Tue Jul 21 17:16:53 2020 +0200
@@ -20,13 +20,15 @@
 
   private def asValue(variable: SpssVariable): SpssValue = {
     val i = variable.index
-    if (r.isSystemMissing(i))
+    if (r.isSystemMissing(i)) {
       SystemMissing
-    else
+    } else if (variable.isNumeric) {
       Option(r.getDoubleValue(i)) map(x =>
         if (r.isValueMissing(i, x)) MissingDouble(x) else DoubleValue(x)
-        ) orElse (Option(r.getStringValue(i)) map StringValue
         ) getOrElse SystemMissing
+    } else {
+      Option(r.getStringValue(i)) map StringValue getOrElse SystemMissing
+    }
   }
 }