From: Jason Stover Date: Sat, 8 Apr 2006 02:44:49 +0000 (+0000) Subject: added SAVE subcommand X-Git-Tag: v0.6.0~1005 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp-builds.git;a=commitdiff_plain;h=7706bddea46fd0f90e8b74214d05639f53702c11 added SAVE subcommand --- diff --git a/src/language/stats/ChangeLog b/src/language/stats/ChangeLog index a3d8eb2c..89829de2 100644 --- a/src/language/stats/ChangeLog +++ b/src/language/stats/ChangeLog @@ -1,3 +1,7 @@ +2006-04-07 Jason Stover + + * regression.q (subcommand_save): New function. + 2006-04-04 Jason Stover * regression.q: New function reg_has_categorical () to tell diff --git a/src/language/stats/regression.q b/src/language/stats/regression.q index ef0041e8..11a1f211 100644 --- a/src/language/stats/regression.q +++ b/src/language/stats/regression.q @@ -71,6 +71,7 @@ all; export=custom; ^dependent=varlist; + save=residuals; method=enter. */ /* (declarations) */ @@ -500,6 +501,37 @@ subcommand_statistics (int *keywords, pspp_linreg_cache * c) statistics_keyword_output (reg_stats_tol, keywords[tol], c); statistics_keyword_output (reg_stats_selection, keywords[selection], c); } +static void +subcommand_save (int save, pspp_linreg_cache *lc, const struct casefile *cf, int *is_missing) +{ + int i; + int k; + int case_num; + double residual; + const union value **vals; + struct casereader *r; + struct ccase c; + + assert (lc != NULL); + if (save) + { + vals = xnmalloc (n_variables, sizeof (*vals)); + for (r = casefile_get_reader (cf); casereader_read (r, &c); + case_destroy (&c)) + { + case_num = casereader_cnum (r) - 1; + if (!is_missing[case_num]) + { + for (i = 0; i < n_variables; ++i) + { + vals[i] = case_data (&c, v_variables[i]->fv); + } + residual = (*lc->predict) (v_variables, vals, lc, n_variables); + } + } + free (vals); + } +} static int reg_inserted (const struct variable *v, struct variable **varlist, int n_vars) { @@ -1002,6 +1034,7 @@ run_regression (const struct casefile *cf, void *cmd_ UNUSED) */ pspp_linreg ((const gsl_vector *) Y, X->m, &lopts, lcache); subcommand_statistics (cmd.a_statistics, lcache); + subcommand_save (cmd.sbc_save, lcache, cf, is_missing_case); subcommand_export (cmd.sbc_export, lcache); gsl_vector_free (Y); design_matrix_destroy (X);