all;
export=custom;
^dependent=varlist;
+ save=residuals;
method=enter.
*/
/* (declarations) */
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 case_num;
+ double residual;
+ const union value **vals;
+ struct casereader *r;
+ struct ccase c;
+
+ assert (lc != NULL);
+ assert (is_missing != 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) ((const struct variable **) v_variables,
+ (const union value **) vals, lc, n_variables);
+ }
+ }
+ free (vals);
+ }
+}
static int
reg_inserted (const struct variable *v, struct variable **varlist, int n_vars)
{
"if (strncmp (v_name, model_depvars[i], PSPP_REG_MAXLEN) == 0)\n\t\t{\n\t\t\t");
fprintf (fp, "return i;\n\t\t}\n\t}\n}\n");
}
+static int
+reg_has_categorical (pspp_linreg_cache * c)
+{
+ int i;
+ const struct variable *v;
+
+ for (i = 1; i < c->n_coeffs; i++)
+ {
+ v = pspp_linreg_coeff_get_var (c->coeff + i, 0);
+ if (v->type == ALPHA)
+ {
+ return 1;
+ }
+ }
+ return 0;
+}
+
static void
subcommand_export (int export, pspp_linreg_cache * c)
{
assert (fp != NULL);
fprintf (fp, "%s", reg_preamble);
reg_print_getvar (fp, c);
- reg_print_categorical_encoding (fp, c);
+ if (reg_has_categorical (c))
+ {
+ reg_print_categorical_encoding (fp, c);
+ }
fprintf (fp, "%s", reg_export_t_quantiles_1);
increment = 0.5 / (double) increment;
for (i = 0; i < n_quantiles - 1; i++)
*/
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);