X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fcorrelations.c;h=acb12fb3228f86c1938bc43724d044021ee32119;hb=ea5c4e8eb004d6414d03b65bd3407cc7ad3e2dfd;hp=bc6508bd2f1863be967eec13fb3aed6a1c81a308;hpb=2be9bee9da6a2ce27715e58128569594319abfa2;p=pspp diff --git a/src/language/stats/correlations.c b/src/language/stats/correlations.c index bc6508bd2f..acb12fb322 100644 --- a/src/language/stats/correlations.c +++ b/src/language/stats/correlations.c @@ -207,8 +207,10 @@ output_correlation (const struct corr *corr, const struct corr_opts *opts, nc - 1, nr - 1); tab_vline (t, TAL_2, heading_columns, 0, nr - 1); + tab_vline (t, TAL_1, 1, heading_rows, nr - 1); + /* Row Headers */ for (r = 0 ; r < corr->n_vars1 ; ++r) { tab_text (t, 0, 1 + r * rows_per_variable, TAB_LEFT | TAT_TITLE, @@ -230,9 +232,11 @@ output_correlation (const struct corr *corr, const struct corr_opts *opts, tab_hline (t, TAL_1, 0, nc - 1, r * rows_per_variable + 1); } + /* Column Headers */ for (c = 0 ; c < matrix_cols ; ++c) { - const struct variable *v = corr->n_vars_total > corr->n_vars1 ? corr->vars[corr->n_vars_total - corr->n_vars1 + c] : corr->vars[c]; + const struct variable *v = corr->n_vars_total > corr->n_vars1 ? + corr->vars[corr->n_vars1 + c] : corr->vars[c]; tab_text (t, heading_columns + c, 0, TAB_LEFT | TAT_TITLE, var_to_string (v)); } @@ -242,7 +246,9 @@ output_correlation (const struct corr *corr, const struct corr_opts *opts, for (c = 0 ; c < matrix_cols ; ++c) { unsigned char flags = 0; - const int col_index = corr->n_vars_total - corr->n_vars1 + c; + const int col_index = corr->n_vars_total > corr->n_vars1 ? + corr->n_vars1 + c : + c; double pearson = gsl_matrix_get (cm, r, col_index); double w = gsl_matrix_get (samples, r, col_index); double sig = opts->tails * significance_of_correlation (pearson, w); @@ -250,10 +256,10 @@ output_correlation (const struct corr *corr, const struct corr_opts *opts, if ( opts->missing_type != CORR_LISTWISE ) tab_double (t, c + heading_columns, row + rows_per_variable - 1, 0, w, wfmt); - if ( c != r) + if ( col_index != r) tab_double (t, c + heading_columns, row + 1, 0, sig, NULL); - if ( opts->sig && c != r && sig < 0.05) + if ( opts->sig && col_index != r && sig < 0.05) flags = TAB_EMPH; tab_double (t, c + heading_columns, row, flags, pearson, NULL); @@ -309,10 +315,8 @@ run_corr (struct casereader *r, const struct corr_opts *opts, const struct corr if ( opts->statistics & STATS_DESCRIPTIVES) output_descriptives (corr, mean_matrix, var_matrix, samples_matrix); - output_correlation (corr, opts, - corr_matrix, - samples_matrix, - cov_matrix); + output_correlation (corr, opts, corr_matrix, + samples_matrix, cov_matrix); covariance_destroy (cov); gsl_matrix_free (corr_matrix);