From d4cbe8251cba21b41df4965adfb8f78c9d1f3947 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 23 Nov 2011 13:59:36 +0100 Subject: [PATCH] glm.c: Allow parser to accept METHOD=SSTYPE(n) subcommand --- src/language/stats/glm.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/language/stats/glm.c b/src/language/stats/glm.c index f0311f82..4b1b1a8b 100644 --- a/src/language/stats/glm.c +++ b/src/language/stats/glm.c @@ -65,6 +65,7 @@ struct glm_spec const struct dictionary *dict; + int ss_type; bool intercept; double alpha; @@ -146,6 +147,7 @@ cmd_glm (struct lexer *lexer, struct dataset *ds) glm.wv = dict_get_weight (glm.dict); glm.alpha = 0.05; glm.dump_coding = false; + glm.ss_type = 3; if (!parse_variables_const (lexer, glm.dict, &glm.dep_vars, &glm.n_dep_vars, @@ -263,9 +265,10 @@ cmd_glm (struct lexer *lexer, struct dataset *ds) goto error; } - if (3 != lex_integer (lexer)) + glm.ss_type = lex_integer (lexer); + if (1 != glm.ss_type && 2 != glm.ss_type ) { - msg (ME, _("Only type 3 sum of squares are currently implemented")); + msg (ME, _("Only types 1 & 2 sum of squares are currently implemented")); goto error; } @@ -551,6 +554,15 @@ run_glm (struct glm_spec *cmd, struct casereader *input, taint_destroy (taint); } +static const char *roman[] = + { + "", /* The Romans had no concept of zero */ + "I", + "II", + "III", + "IV" + }; + static void output_glm (const struct glm_spec *cmd, const struct glm_workspace *ws) { @@ -587,7 +599,8 @@ output_glm (const struct glm_spec *cmd, const struct glm_workspace *ws) /* TRANSLATORS: The parameter is a roman numeral */ tab_text_format (t, 1, 0, TAB_CENTER | TAT_TITLE, - _("Type %s Sum of Squares"), "III"); + _("Type %s Sum of Squares"), + roman[cmd->ss_type]); tab_text (t, 2, 0, TAB_CENTER | TAT_TITLE, _("df")); tab_text (t, 3, 0, TAB_CENTER | TAT_TITLE, _("Mean Square")); tab_text (t, 4, 0, TAB_CENTER | TAT_TITLE, _("F")); -- 2.30.2