#include "output/charts/barchart.h"
#include "gl/minmax.h"
+#include "gl/xalloc-oversized.h"
#include "gl/xalloc.h"
#include "gl/xsize.h"
.descending = false,
};
bool show_tables = true;
+ int exclude_ofs = 0;
lex_match (lexer, T_SLASH);
for (;;)
{
else if (lex_match_id (lexer, "MISSING"))
{
lex_match (lexer, T_EQUALS);
+ exclude_ofs = lex_ofs (lexer);
if (lex_match_id (lexer, "TABLE"))
proc.exclude = MV_ANY;
else if (lex_match_id (lexer, "INCLUDE"))
proc.exclude = MV_SYSTEM;
else if (lex_match_id (lexer, "REPORT"))
- proc.exclude = MV_NEVER;
+ proc.exclude = 0;
else
{
lex_error (lexer, NULL);
assert (proc.n_cells < CRS_N_CELLS);
/* Missing values. */
- if (proc.mode == GENERAL && proc.exclude == MV_NEVER)
+ if (proc.mode == GENERAL && !proc.exclude)
{
- msg (SE, _("Missing mode %s not allowed in general mode. "
- "Assuming %s."), "REPORT", "MISSING=TABLE");
+ lex_ofs_error (lexer, exclude_ofs, exclude_ofs,
+ _("Missing mode %s not allowed in general mode. "
+ "Assuming %s."), "REPORT", "MISSING=TABLE");
proc.exclude = MV_ANY;
}
}
}
- int *by_iter = xcalloc (n_by, sizeof *by_iter);
+ int *by_iter = XCALLOC (n_by, int);
proc->pivots = xnrealloc (proc->pivots,
proc->n_pivots + nx, sizeof *proc->pivots);
for (int i = 0; i < nx; i++)
{
if (proc->n_pivots)
{
- msg (SE, _("%s must be specified before %s."), "VARIABLES", "TABLES");
+ lex_next_error (lexer, -1, -1, _("%s must be specified before %s."),
+ "VARIABLES", "TABLES");
return false;
}
const struct variable *var = xt->vars[j].var;
const struct var_range *range = get_var_range (xt->proc, var);
- if (var_is_value_missing (var, case_data (c, var), exclude))
+ if (var_is_value_missing (var, case_data (c, var)) & exclude)
return false;
if (range != NULL)
if (proc->barchart)
{
int n_vars = (xt->n_vars > 2 ? 2 : xt->n_vars);
- const struct variable **vars = xcalloc (n_vars, sizeof *vars);
+ const struct variable **vars = XCALLOC (n_vars, const struct variable*);
for (size_t i = 0; i < n_vars; i++)
vars[i] = xt->vars[i].var;
chart_submit (barchart_create (vars, n_vars, _("Count"),
if (table)
display_crosstabulation (proc, &x, table, crs_leaves);
- if (proc->exclude == MV_NEVER)
+ if (proc->exclude == 0)
delete_missing (&x);
if (chisq)
{
struct pivot_value *value = pivot_value_new_var_value (
var->var, &var->values[j]);
- if (var_is_value_missing (var->var, &var->values[j], MV_ANY))
+ if (var_is_value_missing (var->var, &var->values[j]))
pivot_value_add_footnote (value, missing_footnote);
pivot_category_create_leaf (group, value);
}
for (r = 0; r < n_rows; r++)
if (var_is_num_missing (xt->vars[ROW_VAR].var,
- xt->vars[ROW_VAR].values[r].f, MV_USER))
+ xt->vars[ROW_VAR].values[r].f) == MV_USER)
{
for (c = 0; c < n_cols; c++)
xt->mat[c + r * n_cols] = 0.;
for (c = 0; c < n_cols; c++)
if (var_is_num_missing (xt->vars[COL_VAR].var,
- xt->vars[COL_VAR].values[c].f, MV_USER))
+ xt->vars[COL_VAR].values[c].f) == MV_USER)
{
for (r = 0; r < n_rows; r++)
xt->mat[c + r * n_cols] = 0.;
double expected_value = xt->row_tot[r] * xt->col_tot[c] / xt->total;
double residual = *mp - expected_value;
double sresidual = residual / sqrt (expected_value);
- double asresidual = (sresidual
+ double asresidual
+ = residual / sqrt (expected_value
* (1. - xt->row_tot[r] / xt->total)
* (1. - xt->col_tot[c] / xt->total));
double entries[CRS_N_CELLS] = {
union value c[2];
if (!calc_risk (xt, risk_v, upper, lower, c, &n_valid))
return;
+ assert (risk_statistics);
size_t *indexes = xnmalloc (risk->n_dimensions, sizeof *indexes);
assert (xt->n_vars == 2);
return 1;
}
-
-/*
- Local Variables:
- mode: c
- End:
-*/