if (var_is_value_missing (var, value, exclude))
continue;
- if ( NULL == cat1[v].value )
+ if (bst->cutpoint != SYSMIS)
{
- cat1[v].value = value_dup (value, width);
- cat1[v].count = w;
+ if ( compare_values_short (cat1[v].value, value, var) >= 0 )
+ cat1[v].count += w;
+ else
+ cat2[v].count += w;
}
- else if ( 0 == compare_values_short (cat1[v].value, value, var))
- cat1[v].count += w;
- else if ( NULL == cat2[v].value )
+ else
{
- cat2[v].value = value_dup (value, width);
- cat2[v].count = w;
+ if ( NULL == cat1[v].value )
+ {
+ cat1[v].value = value_dup (value, width);
+ cat1[v].count = w;
+ }
+ else if ( 0 == compare_values_short (cat1[v].value, value, var))
+ cat1[v].count += w;
+ else if ( NULL == cat2[v].value )
+ {
+ cat2[v].value = value_dup (value, width);
+ cat2[v].count = w;
+ }
+ else if ( 0 == compare_values_short (cat2[v].value, value, var))
+ cat2[v].count += w;
+ else if ( bst->category1 == SYSMIS)
+ msg (ME, _("Variable %s is not dichotomous"), var_get_name (var));
}
- else if ( 0 == compare_values_short (cat2[v].value, value, var))
- cat2[v].count += w;
- else if ( bst->category1 == SYSMIS)
- msg (ME, _("Variable %s is not dichotomous"), var_get_name (var));
}
case_unref (c);
struct freq_mutable *cat1 = xzalloc (sizeof (*cat1) * ost->n_vars);
struct freq_mutable *cat2 = xzalloc (sizeof (*cat1) * ost->n_vars);
- assert ((bst->category1 == SYSMIS) == (bst->category2 == SYSMIS) );
+ assert ((bst->category1 == SYSMIS) == (bst->category2 == SYSMIS) || bst->cutpoint != SYSMIS);
- if ( bst->category1 != SYSMIS )
+ if ( bst->cutpoint != SYSMIS )
+ {
+ int i;
+ union value v;
+ v.f = bst->cutpoint;
+ for (i = 0; i < ost->n_vars; i++)
+ cat1[i].value = value_dup (&v, 0);
+ }
+ else if ( bst->category1 != SYSMIS )
{
int i;
union value v;
ds_init_empty (&catstr1);
ds_init_empty (&catstr2);
- var_append_value_name (var, cat1[v].value, &catstr1);
- var_append_value_name (var, cat2[v].value, &catstr2);
+ if ( bst->cutpoint != SYSMIS)
+ {
+ ds_put_format (&catstr1, "<= %g", bst->cutpoint);
+ }
+ else
+ {
+ var_append_value_name (var, cat1[v].value, &catstr1);
+ var_append_value_name (var, cat2[v].value, &catstr2);
+ }
tab_hline (table, TAL_1, 0, tab_nc (table) -1, 1 + v * 3);
{
lex_force_num (lexer);
btp->category1 = lex_number (lexer);
- lex_get (lexer);
- if ( ! lex_force_match (lexer, ',')) return 2;
- if ( ! lex_force_num (lexer) ) return 2;
- btp->category2 = lex_number (lexer);
- lex_get (lexer);
+ lex_get (lexer);
+ if ( lex_match (lexer, ','))
+ {
+ if ( ! lex_force_num (lexer) ) return 2;
+ btp->category2 = lex_number (lexer);
+ lex_get (lexer);
+ }
+ else
+ {
+ btp->cutpoint = btp->category1;
+ }
+
lex_force_match (lexer, ')');
}
}
else
return 2;
}
- else
- {
- if ( lex_match (lexer, '(') )
- {
- lex_force_num (lexer);
- btp->cutpoint = lex_number (lexer);
- lex_get (lexer);
- lex_force_match (lexer, ')');
- }
- }
specs->n_tests++;
specs->test = pool_realloc (specs->pool,
NPAR TESTS
/BINOMIAL(0.5) = x
.
+
+ECHO 'P == 0.5; N1/N2 == 1 Cutpoint' .
+
+DATA LIST LIST NOTABLE /x * w *.
+BEGIN DATA.
+9 3
+10 7
+11 16
+END DATA.
+
+WEIGHT BY w.
+
+NPAR TESTS
+ /BINOMIAL(0.5) = x (10)
+ .
+
+ECHO 'P == 0.5; N1/N2 == 1 Named values' .
+
+DATA LIST LIST NOTABLE /x * w *.
+BEGIN DATA.
+10 10
+15 45
+20 13
+END DATA.
+
+WEIGHT BY w.
+
+NPAR TESTS
+ /BINOMIAL(0.5) = x (10, 20)
+ .
EOF
if [ $? -ne 0 ] ; then no_result ; fi
| |Group2# 2.00|10| .500| | |
| |Total # |20| 1.00| | |
+-+------#--------+--+--------------+----------+---------------------+
+P == 0.5; N1/N2 == 1 Cutpoint
+10.1 NPAR TESTS. Binomial Test
++-+------#--------+--+--------------+----------+---------------------+
+| | #Category| N|Observed Prop.|Test Prop.|Exact Sig. (2-tailed)|
++-+------#--------+--+--------------+----------+---------------------+
+|x|Group1# <= 10|10| .385| .500| .327|
+| |Group2# |16| .615| | |
+| |Total # |26| 1.00| | |
++-+------#--------+--+--------------+----------+---------------------+
+P == 0.5; N1/N2 == 1 Named values
+11.1 NPAR TESTS. Binomial Test
++-+------#--------+--+--------------+----------+---------------------+
+| | #Category| N|Observed Prop.|Test Prop.|Exact Sig. (2-tailed)|
++-+------#--------+--+--------------+----------+---------------------+
+|x|Group1# 10.00|10| .435| .500| .678|
+| |Group2# 20.00|13| .565| | |
+| |Total # |23| 1.00| | |
++-+------#--------+--+--------------+----------+---------------------+
EOF
if [ $? -ne 0 ] ; then fail ; fi