From 277dd4ac4efd9a0ea16263746dfc904768915da4 Mon Sep 17 00:00:00 2001 From: Mara Date: Thu, 11 Apr 2024 20:01:05 +0800 Subject: [PATCH] a6.8.1 --- .../mybox/calculation/DoubleStatistic.java | 7 ++- .../mara/mybox/calculation/Normalization.java | 43 +++++++++++++++---- .../controller/Data2DNormalizeController.java | 8 +++- .../main/java/mara/mybox/data/SetValue.java | 5 +++ .../mybox/data2d/operate/Data2DNormalize.java | 43 ++++++++++++++++++- 5 files changed, 91 insertions(+), 15 deletions(-) diff --git a/alpha/MyBox/src/main/java/mara/mybox/calculation/DoubleStatistic.java b/alpha/MyBox/src/main/java/mara/mybox/calculation/DoubleStatistic.java index db26bd04b..b3062ce1b 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/calculation/DoubleStatistic.java +++ b/alpha/MyBox/src/main/java/mara/mybox/calculation/DoubleStatistic.java @@ -141,13 +141,12 @@ private void calculateBase() { double v = doubles[i]; if (Double.isNaN(v)) { switch (invalidAs) { - case Empty: - case Skip: - invalidCount++; - continue; case Zero: v = 0; break; + default: + invalidCount++; + continue; } } count++; diff --git a/alpha/MyBox/src/main/java/mara/mybox/calculation/Normalization.java b/alpha/MyBox/src/main/java/mara/mybox/calculation/Normalization.java index 097cd3308..91d7e9f29 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/calculation/Normalization.java +++ b/alpha/MyBox/src/main/java/mara/mybox/calculation/Normalization.java @@ -1,6 +1,11 @@ package mara.mybox.calculation; import mara.mybox.db.data.ColumnDefinition.InvalidAs; +import static mara.mybox.db.data.ColumnDefinition.InvalidAs.Empty; +import static mara.mybox.db.data.ColumnDefinition.InvalidAs.Keep; +import static mara.mybox.db.data.ColumnDefinition.InvalidAs.Null; +import static mara.mybox.db.data.ColumnDefinition.InvalidAs.Skip; +import static mara.mybox.db.data.ColumnDefinition.InvalidAs.Zero; import mara.mybox.dev.MyBoxLog; import mara.mybox.tools.DoubleTools; import mara.mybox.tools.StringTools; @@ -124,8 +129,7 @@ public boolean minMax() { case Zero: d = 0; break; - case Skip: - case Empty: + default: continue; } } @@ -153,12 +157,18 @@ public boolean minMax() { case Zero: resultVector[i] = "0"; break; - case Skip: + case Keep: resultVector[i] = s; break; + case Skip: + resultVector[i] = null; + break; case Empty: resultVector[i] = ""; break; + case Null: + resultVector[i] = null; + break; } continue; } @@ -198,8 +208,7 @@ public boolean zscore() { case Zero: d = 0; break; - case Skip: - case Empty: + default: continue; } } @@ -219,12 +228,18 @@ public boolean zscore() { case Zero: resultVector[i] = "0"; break; - case Skip: + case Keep: resultVector[i] = s; break; + case Skip: + resultVector[i] = null; + break; case Empty: resultVector[i] = ""; break; + case Null: + resultVector[i] = null; + break; } continue; } @@ -267,12 +282,18 @@ public boolean sum() { case Zero: resultVector[i] = "0"; break; - case Skip: + case Keep: resultVector[i] = s; break; + case Skip: + resultVector[i] = null; + break; case Empty: resultVector[i] = ""; break; + case Null: + resultVector[i] = null; + break; } continue; } @@ -315,12 +336,18 @@ public boolean absoluate() { case Zero: resultVector[i] = "0"; break; - case Skip: + case Keep: resultVector[i] = s; break; + case Skip: + resultVector[i] = null; + break; case Empty: resultVector[i] = ""; break; + case Null: + resultVector[i] = null; + break; } continue; } diff --git a/alpha/MyBox/src/main/java/mara/mybox/controller/Data2DNormalizeController.java b/alpha/MyBox/src/main/java/mara/mybox/controller/Data2DNormalizeController.java index dbedb1093..d3026527a 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/controller/Data2DNormalizeController.java +++ b/alpha/MyBox/src/main/java/mara/mybox/controller/Data2DNormalizeController.java @@ -5,6 +5,7 @@ import javafx.fxml.FXML; import mara.mybox.calculation.Normalization; import mara.mybox.data2d.writer.Data2DWriter; +import static mara.mybox.db.data.ColumnDefinition.InvalidAs.Empty; import mara.mybox.dev.MyBoxLog; import mara.mybox.fxml.FxTask; import mara.mybox.fxml.WindowTools; @@ -71,11 +72,16 @@ public boolean handleRows() { row.add("0"); break; case Skip: - row.add(s); break; case Empty: + row.add(""); + break; + case Null: row.add(null); break; + default: + row.add(s); + break; } } else { row.add(NumberTools.format(d, scale)); diff --git a/alpha/MyBox/src/main/java/mara/mybox/data/SetValue.java b/alpha/MyBox/src/main/java/mara/mybox/data/SetValue.java index 8ec887e67..bd1504a46 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/data/SetValue.java +++ b/alpha/MyBox/src/main/java/mara/mybox/data/SetValue.java @@ -1,6 +1,7 @@ package mara.mybox.data; import mara.mybox.db.data.ColumnDefinition.InvalidAs; +import static mara.mybox.db.data.ColumnDefinition.InvalidAs.Empty; import mara.mybox.tools.DoubleTools; /** @@ -115,6 +116,10 @@ public String scale(String value) { return "0"; case Empty: return ""; + case Null: + return null; + case Skip: + return null; default: return value; } diff --git a/alpha/MyBox/src/main/java/mara/mybox/data2d/operate/Data2DNormalize.java b/alpha/MyBox/src/main/java/mara/mybox/data2d/operate/Data2DNormalize.java index d31166bf9..9b348087e 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/data2d/operate/Data2DNormalize.java +++ b/alpha/MyBox/src/main/java/mara/mybox/data2d/operate/Data2DNormalize.java @@ -4,6 +4,9 @@ import mara.mybox.calculation.DoubleStatistic; import mara.mybox.calculation.Normalization; import mara.mybox.data2d.Data2D_Edit; +import static mara.mybox.db.data.ColumnDefinition.InvalidAs.Null; +import static mara.mybox.db.data.ColumnDefinition.InvalidAs.Skip; +import static mara.mybox.db.data.ColumnDefinition.InvalidAs.Zero; import mara.mybox.tools.DoubleTools; import mara.mybox.value.AppValues; import static mara.mybox.value.Languages.message; @@ -114,6 +117,11 @@ public boolean handleNormalizeMinMaxColumns() { case Zero: targetRow.add("0"); break; + case Skip: + break; + case Null: + targetRow.add(null); + break; default: targetRow.add(s); break; @@ -164,6 +172,11 @@ public boolean handleNormalizeSumColumns() { case Zero: targetRow.add("0"); break; + case Skip: + break; + case Null: + targetRow.add(null); + break; default: targetRow.add(s); break; @@ -214,6 +227,11 @@ public boolean handleNormalizeZscoreColumns() { case Zero: targetRow.add("0"); break; + case Skip: + break; + case Null: + targetRow.add(null); + break; default: targetRow.add(s); break; @@ -268,6 +286,11 @@ public boolean handleNormalizeMinMaxAll() { case Zero: targetRow.add("0"); break; + case Skip: + break; + case Null: + targetRow.add(null); + break; default: targetRow.add(s); break; @@ -318,6 +341,11 @@ public boolean handleNormalizeSumAll() { case Zero: targetRow.add("0"); break; + case Skip: + break; + case Null: + targetRow.add(null); + break; default: targetRow.add(s); break; @@ -368,6 +396,11 @@ public boolean handleNormalizeZscoreAll() { case Zero: targetRow.add("0"); break; + case Skip: + break; + case Null: + targetRow.add(null); + break; default: targetRow.add(s); break; @@ -430,12 +463,18 @@ public boolean handleNormalizeRows(Normalization.Algorithm a) { case Zero: targetRow.add("0"); break; + case Empty: + targetRow.add(""); + break; case Skip: - targetRow.add(s); break; - case Empty: + case Null: targetRow.add(null); break; + default: + targetRow.add(s); + break; + } } else { targetRow.add(DoubleTools.scale(d, scale) + "");