X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Foneway.c;h=49a34f2ed593f299cc15466d068d4c44857a2bb0;hb=7235f7f42b61c2b111174c3ee5ca72aac8815cd5;hp=e15bff7446337d61c1df2eb0dd3ae1e039aadca7;hpb=d18270eb353b0f8ed23814be18f1de69c4001262;p=pspp diff --git a/src/language/stats/oneway.c b/src/language/stats/oneway.c index e15bff7446..49a34f2ed5 100644 --- a/src/language/stats/oneway.c +++ b/src/language/stats/oneway.c @@ -652,11 +652,10 @@ run_oneway (const struct oneway_spec *cmd, for (v = 0; v < cmd->n_vars; ++v) { - const struct interaction *inter = interaction_create (cmd->indep_var); + struct interaction *inter = interaction_create (cmd->indep_var); ws.vws[v].cat = categoricals_create (&inter, 1, cmd->wv, cmd->exclude, makeit, updateit, - CONST_CAST (struct variable *, - cmd->vars[v]), + CONST_CAST (struct variable *, cmd->vars[v]), ws.dd_total[v]); ws.vws[v].cov = covariance_2pass_create (1, &cmd->vars[v], @@ -756,9 +755,12 @@ run_oneway (const struct oneway_spec *cmd, for (v = 0; v < cmd->n_vars; ++v) { + gsl_matrix *cm; struct per_var_ws *pvw = &ws.vws[v]; - gsl_matrix *cm = covariance_calculate_unnormalized (pvw->cov); const struct categoricals *cats = covariance_get_categoricals (pvw->cov); + categoricals_done (cats); + + cm = covariance_calculate_unnormalized (pvw->cov); moments1_calculate (ws.dd_total[v]->mom, &pvw->n, NULL, NULL, NULL, NULL); @@ -781,8 +783,6 @@ run_oneway (const struct oneway_spec *cmd, { const struct categoricals *cats = covariance_get_categoricals (ws.vws[v].cov); - categoricals_done (cats); - if (categoricals_n_total (cats) > ws.actual_number_of_groups) ws.actual_number_of_groups = categoricals_n_total (cats); } @@ -827,7 +827,7 @@ output_oneway (const struct oneway_spec *cmd, struct oneway_workspace *ws) if (ll_count (cl) != ws->actual_number_of_groups) { msg (SW, - _("In contrast list %zu, the number of coefficients (%d) does not equal the number of groups (%d). This contrast list will be ignored."), + _("In contrast list %zu, the number of coefficients (%zu) does not equal the number of groups (%d). This contrast list will be ignored."), i, ll_count (cl), ws->actual_number_of_groups); ll_remove (&coeff_list->ll); @@ -1537,12 +1537,13 @@ show_comparisons (const struct oneway_spec *cmd, const struct oneway_workspace * double std_err; double weight_j, mean_j, var_j; double half_range; + const struct ccase *cc; struct descriptive_data *dd_j = categoricals_get_user_data_by_category (cat, j); if (j == i) continue; ds_clear (&vstr); - const struct ccase *cc = categoricals_get_case_by_category (cat, j); + cc = categoricals_get_case_by_category (cat, j); var_append_value_name (cmd->indep_var, case_data (cc, cmd->indep_var), &vstr); tab_text (t, 2, r + rx, TAB_LEFT | TAT_TITLE, ds_cstr (&vstr));