From fd8e27f58ebe1bd2cb28dbb5a91690310441c9cd Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sun, 23 Jun 2019 17:57:30 +0200 Subject: [PATCH] MEANS: Change the statistic formats to follow their respective variables --- src/language/stats/means-calc.c | 36 ++++++++++++++++----------------- src/language/stats/means.c | 10 +++++++-- tests/language/stats/means.at | 4 +--- 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/language/stats/means-calc.c b/src/language/stats/means-calc.c index 7e5142fd78..5a3c205b97 100644 --- a/src/language/stats/means-calc.c +++ b/src/language/stats/means-calc.c @@ -423,29 +423,29 @@ first_get (const struct statistic *pvd) /* Table of cell_specs */ const struct cell_spec cell_spec[n_MEANS_STATISTICS] = { - {N_("Mean"), "MEAN", PIVOT_RC_OTHER, default_create, default_update, arithmean_get, default_destroy}, + {N_("Mean"), "MEAN", NULL , default_create, default_update, arithmean_get, default_destroy}, {N_("N"), "COUNT", PIVOT_RC_COUNT, default_create, default_update, n_get, default_destroy}, - {N_("Std. Deviation"), "STDDEV", PIVOT_RC_OTHER, default_create, default_update, stddev_get, default_destroy}, + {N_("Std. Deviation"), "STDDEV", NULL , default_create, default_update, stddev_get, default_destroy}, #if 0 - {N_("Median"), "MEDIAN", PIVOT_RC_OTHER, default_create, default_update, NULL, default_destroy}, - {N_("Group Median"), "GMEDIAN", PIVOT_RC_OTHER, default_create, default_update, NULL, default_destroy}, + {N_("Median"), "MEDIAN", NULL , default_create, default_update, NULL, default_destroy}, + {N_("Group Median"), "GMEDIAN", NULL , default_create, default_update, NULL, default_destroy}, #endif - {N_("S.E. Mean"), "SEMEAN", PIVOT_RC_OTHER, default_create, default_update, semean_get, default_destroy}, - {N_("Sum"), "SUM", PIVOT_RC_OTHER, default_create, default_update, sum_get, default_destroy}, - {N_("Minimum"), "MIN", PIVOT_RC_OTHER, min_create, min_update, min_get, simple_destroy}, - {N_("Maximum"), "MAX", PIVOT_RC_OTHER, max_create, max_update, max_get, simple_destroy}, - {N_("Range"), "RANGE", PIVOT_RC_OTHER, range_create, range_update, range_get, simple_destroy}, - {N_("Variance"), "VARIANCE", PIVOT_RC_OTHER, default_create, default_update, variance_get, default_destroy}, - {N_("Kurtosis"), "KURT", PIVOT_RC_OTHER, default_create, default_update, kurt_get, default_destroy}, - {N_("S.E. Kurt"), "SEKURT", PIVOT_RC_OTHER, default_create, default_update, sekurt_get, default_destroy}, - {N_("Skewness"), "SKEW", PIVOT_RC_OTHER, default_create, default_update, skew_get, default_destroy}, - {N_("S.E. Skew"), "SESKEW", PIVOT_RC_OTHER, default_create, default_update, seskew_get, default_destroy}, - {N_("First"), "FIRST", PIVOT_RC_OTHER, first_create, first_update, first_get, simple_destroy}, - {N_("Last"), "LAST", PIVOT_RC_OTHER, last_create, last_update, last_get, simple_destroy}, + {N_("S.E. Mean"), "SEMEAN", NULL , default_create, default_update, semean_get, default_destroy}, + {N_("Sum"), "SUM", NULL , default_create, default_update, sum_get, default_destroy}, + {N_("Minimum"), "MIN", NULL , min_create, min_update, min_get, simple_destroy}, + {N_("Maximum"), "MAX", NULL , max_create, max_update, max_get, simple_destroy}, + {N_("Range"), "RANGE", NULL , range_create, range_update, range_get, simple_destroy}, + {N_("Variance"), "VARIANCE", NULL , default_create, default_update, variance_get, default_destroy}, + {N_("Kurtosis"), "KURT", NULL , default_create, default_update, kurt_get, default_destroy}, + {N_("S.E. Kurt"), "SEKURT", NULL , default_create, default_update, sekurt_get, default_destroy}, + {N_("Skewness"), "SKEW", NULL , default_create, default_update, skew_get, default_destroy}, + {N_("S.E. Skew"), "SESKEW", NULL , default_create, default_update, seskew_get, default_destroy}, + {N_("First"), "FIRST", NULL , first_create, first_update, first_get, simple_destroy}, + {N_("Last"), "LAST", NULL , last_create, last_update, last_get, simple_destroy}, #if 0 {N_("Percent N"), "NPCT", PIVOT_RC_PERCENT, default_create, default_update, NULL, default_destroy}, {N_("Percent Sum"), "SPCT", PIVOT_RC_PERCENT, default_create, default_update, NULL, default_destroy}, #endif - {N_("Harmonic Mean"), "HARMONIC", PIVOT_RC_OTHER, harmonic_create, harmonic_update, harmonic_get, simple_destroy}, - {N_("Geom. Mean"), "GEOMETRIC", PIVOT_RC_OTHER, geometric_create, geometric_update, geometric_get, simple_destroy} + {N_("Harmonic Mean"), "HARMONIC", NULL , harmonic_create, harmonic_update, harmonic_get, simple_destroy}, + {N_("Geom. Mean"), "GEOMETRIC", NULL , geometric_create, geometric_update, geometric_get, simple_destroy} }; diff --git a/src/language/stats/means.c b/src/language/stats/means.c index c30b66c310..94ee1d1956 100644 --- a/src/language/stats/means.c +++ b/src/language/stats/means.c @@ -567,8 +567,14 @@ populate_table (const struct means *means, const struct mtable *mt, } int idx = s + v * means->n_statistics; - pivot_table_put (pt, indexes, pt->n_dimensions, - pivot_value_new_number (sg (cell->stat[idx]))); + struct pivot_value *pv + = pivot_value_new_number (sg (cell->stat[idx])); + if (NULL == cell_spec[stat].rc) + { + const struct variable *dv = mt->dep_vars[v]; + pv->numeric.format = * var_get_print_format (dv); + } + pivot_table_put (pt, indexes, pt->n_dimensions, pv); } } free (indexes); diff --git a/tests/language/stats/means.at b/tests/language/stats/means.at index c9aeeb7a0a..8e48319d70 100644 --- a/tests/language/stats/means.at +++ b/tests/language/stats/means.at @@ -685,7 +685,7 @@ AT_SETUP([MEANS multi combination]) AT_KEYWORDS([categorical categoricals]) AT_DATA([means-multi-combination.sps], [dnl -data list notable list /one two three four five six. +data list notable list /one (F22.5) two (F22.5) three four five six. begin data 1 1 1 1 1 1 2 1 1 1 1 1 @@ -758,8 +758,6 @@ recode five (2 = 52) (1 = 51). recode four (2 = 42) (1 = 41). recode three (2 = 32) (1 = 31). -set format F22.5. - means tables = one two BY three four BY five six. ]) -- 2.30.2