From: Ben Pfaff Date: Sun, 14 Aug 2022 23:42:56 +0000 (-0700) Subject: FREQUENCIES: Use the smallest mode if there are multiple. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp;a=commitdiff_plain;h=3facf6314da231910f60a53805916e879b1782e9 FREQUENCIES: Use the smallest mode if there are multiple. This matches the documentation. --- diff --git a/src/language/stats/frequencies.c b/src/language/stats/frequencies.c index 018cc6237e..d20d8392c1 100644 --- a/src/language/stats/frequencies.c +++ b/src/language/stats/frequencies.c @@ -1502,21 +1502,14 @@ calc_stats (const struct frq_proc *frq, const struct var_freqs *vf, int most_often = -1; double X_mode = SYSMIS; - /* Calculate the mode. */ + /* Calculate the mode. If there is more than one mode, we take the + smallest. */ for (f = ft->valid; f < ft->missing; f++) - { - if (most_often < f->count) - { - most_often = f->count; - X_mode = f->values[0].f; - } - else if (most_often == f->count) - { - /* A duplicate mode is undefined. - FIXME: keep track of *all* the modes. */ - X_mode = SYSMIS; - } - } + if (most_often < f->count) + { + most_often = f->count; + X_mode = f->values[0].f; + } /* Calculate moments. */ m = moments_create (MOMENT_KURTOSIS);