SpssReader: handle StringValues properly.
--- 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
+ }
}
}