X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Flogistic.c;h=75f1d2a13fb4f6a439fb0a6e4428b3cc3a45cec1;hb=80ff0f10da00eae4c7b3b07266a03e403e97d640;hp=2cf440c31f8829f34ee0416a26feea1ea12adf0f;hpb=96994a54e60e9c95b8bba54c2281acf7059b1203;p=pspp diff --git a/src/language/stats/logistic.c b/src/language/stats/logistic.c index 2cf440c31f..75f1d2a13f 100644 --- a/src/language/stats/logistic.c +++ b/src/language/stats/logistic.c @@ -227,7 +227,7 @@ predictor_value (const struct ccase *c, { /* Values of the scalar predictor variables */ if (index < n_x) - return case_data (c, x[index])->f; + return case_num (c, x[index]); /* Coded values of categorical predictor variables (or interactions) */ if (cats && index - n_x < categoricals_df_total (cats)) @@ -478,7 +478,7 @@ initial_pass (const struct lr_spec *cmd, struct lr_result *res, struct casereade double weight = dict_get_case_weight (cmd->dict, c, &res->warn_bad_weight); const union value *depval = case_data (c, cmd->dep_var); - if (var_is_value_missing (cmd->dep_var, depval, cmd->exclude)) + if (var_is_value_missing (cmd->dep_var, depval) & cmd->exclude) { missing = true; } @@ -486,7 +486,7 @@ initial_pass (const struct lr_spec *cmd, struct lr_result *res, struct casereade for (v = 0; v < cmd->n_indep_vars; ++v) { const union value *val = case_data (c, cmd->indep_vars[v]); - if (var_is_value_missing (cmd->indep_vars[v], val, cmd->exclude)) + if (var_is_value_missing (cmd->indep_vars[v], val) & cmd->exclude) { missing = true; break; @@ -928,7 +928,7 @@ cmd_logistic (struct lexer *lexer, struct dataset *ds) { if (lex_force_match (lexer, T_LPAREN)) { - if (! lex_force_int (lexer)) + if (! lex_force_int_range (lexer, "ITERATE", 0, INT_MAX)) { lex_error (lexer, NULL); goto error; @@ -982,18 +982,11 @@ cmd_logistic (struct lexer *lexer, struct dataset *ds) { if (lex_force_match (lexer, T_LPAREN)) { - if (! lex_force_num (lexer)) - { - lex_error (lexer, NULL); - goto error; - } + if (!lex_force_num_range_closed (lexer, "CUT", 0, 1)) + goto error; + cp = lex_number (lexer); - if (cp < 0 || cp > 1.0) - { - msg (ME, _("Cut point value must be in the range [0,1]")); - goto error; - } lex_get (lexer); if (! lex_force_match (lexer, T_RPAREN)) {