double u; /* The Mann-Whitney U statistic */
double w; /* The Wilcoxon Rank Sum W statistic */
- double z;
+ double z;
};
static void show_ranks_box (const struct n_sample_test *nst, const struct mw *mw);
return false;
}
-
+
void
mann_whitney_execute (const struct dataset *ds,
struct ccase *c;
const struct variable *var = nst->vars[i];
- struct casereader *reader =
+ struct casereader *reader =
casereader_create_filter_func (casereader_clone (input),
belongs_to_test,
NULL,
CONST_CAST (struct n_sample_test *, nst),
NULL);
-
+ reader = casereader_create_filter_missing (reader, &var, 1,
+ exclude,
+ NULL, NULL);
+
reader = sort_execute_1var (reader, var);
rr = casereader_create_append_rank (reader, var,
for (; (c = casereader_read (rr)); case_unref (c))
{
- const union value *val = case_data (c, var);
const union value *group = case_data (c, nst->indep_var);
const size_t group_var_width = var_get_width (nst->indep_var);
const double rank = case_data_idx (c, rank_idx)->f;
- if ( var_is_value_missing (var, val, exclude))
- continue;
-
if ( value_equal (group, &nst->val1, group_var_width))
{
mw[i].rank_sum[0] += rank;
denominator -= tiebreaker;
denominator *= mwv->n[0] * mwv->n[1];
denominator /= n * (n - 1);
-
+
mwv->z /= sqrt (denominator);
}
}
tab_text (table, 3, 0, TAT_TITLE | TAB_CENTER, _("Z"));
tab_text (table, 4, 0, TAT_TITLE | TAB_CENTER, _("Asymp. Sig. (2-tailed)"));
- if (exact)
+ if (exact)
{
tab_text (table, 5, 0, TAT_TITLE | TAB_CENTER, _("Exact Sig. (2-tailed)"));
tab_text (table, 6, 0, TAT_TITLE | TAB_CENTER, _("Point Probability"));