}
static struct xfactor level0_factor;
-static struct ll_list factor_list = LL_INITIALIZER (factor_list);
+static struct ll_list factor_list;
/* Parse the clause specifying the factors */
static int examine_parse_independent_vars (struct lexer *lexer,
/* Output functions */
static void show_summary (const struct variable **dependent_var, int n_dep_var,
+ const struct dictionary *dict,
const struct xfactor *f);
static void run_examine (struct cmd_examine *, struct casereader *,
struct dataset *);
-static void output_examine (void);
+static void output_examine (const struct dictionary *dict);
void factor_calc (const struct ccase *c, int case_no,
subc_list_double_create (&percentile_list);
percentile_algorithm = PC_HAVERAGE;
+ ll_init (&factor_list);
+
if ( !parse_examine (lexer, ds, &cmd, NULL) )
{
subc_list_double_destroy (&percentile_list);
/* Show all the appropriate tables */
static void
-output_examine (void)
+output_examine (const struct dictionary *dict)
{
struct ll *ll;
- show_summary (dependent_vars, n_dependent_vars, &level0_factor);
+ show_summary (dependent_vars, n_dependent_vars, dict, &level0_factor);
if ( cmd.a_statistics[XMN_ST_EXTREME] )
show_extremes (dependent_vars, n_dependent_vars, &level0_factor);
ll != ll_null (&factor_list); ll = ll_next (ll))
{
struct xfactor *factor = ll_data (ll, struct xfactor, ll);
- show_summary (dependent_vars, n_dependent_vars, factor);
+ show_summary (dependent_vars, n_dependent_vars, dict, factor);
if ( cmd.a_statistics[XMN_ST_EXTREME] )
show_extremes (dependent_vars, n_dependent_vars, factor);
casereader_destroy (input);
- output_examine ();
+ output_examine (dict);
factor_destroy (&level0_factor);
static void
show_summary (const struct variable **dependent_var, int n_dep_var,
+ const struct dictionary *dict,
const struct xfactor *fctr)
{
+ const struct variable *wv = dict_get_weight (dict);
+ const struct fmt_spec *wfmt = wv ? var_get_print_format (wv) : & F_8_0;
+
static const char *subtitle[]=
{
N_("Valid"),
result->metrics[v].se_mean = sqrt (result->metrics[v].variance / n) ;
/* Total Valid */
- tab_float (tbl, heading_columns,
+ tab_double (tbl, heading_columns,
heading_rows + j + v * ll_count (&fctr->result_list),
TAB_LEFT,
- n, 8, 0);
+ n, wfmt);
tab_text (tbl, heading_columns + 1,
heading_rows + j + v * ll_count (&fctr->result_list),
"%g%%", n * 100.0 / result->metrics[v].n);
/* Total Missing */
- tab_float (tbl, heading_columns + 2,
+ tab_double (tbl, heading_columns + 2,
heading_rows + j + v * ll_count (&fctr->result_list),
TAB_LEFT,
result->metrics[v].n - n,
- 8, 0);
+ wfmt);
tab_text (tbl, heading_columns + 3,
heading_rows + j + v * ll_count (&fctr->result_list),
);
/* Total Valid + Missing */
- tab_float (tbl, heading_columns + 4,
+ tab_double (tbl, heading_columns + 4,
heading_rows + j + v * ll_count (&fctr->result_list),
TAB_LEFT,
result->metrics[v].n,
- 8, 0);
+ wfmt);
tab_text (tbl, heading_columns + 5,
heading_rows + j + v * ll_count (&fctr->result_list),
/* Now the statistics ... */
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
result->metrics[v].mean,
- 8, 2);
+ NULL);
- tab_float (tbl, n_cols - 1,
+ tab_double (tbl, n_cols - 1,
heading_rows + row_var_start + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
result->metrics[v].se_mean,
- 8, 3);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 1 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
result->metrics[v].mean - t *
result->metrics[v].se_mean,
- 8, 3);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 2 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
result->metrics[v].mean + t *
result->metrics[v].se_mean,
- 8, 3);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 3 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
trimmed_mean_calculate ((struct trimmed_mean *) result->metrics[v].trimmed_mean),
- 8, 2);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 4 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
percentile_calculate (result->metrics[v].quartiles[1], percentile_algorithm),
- 8, 2);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 5 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
result->metrics[v].variance,
- 8, 3);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 6 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
sqrt (result->metrics[v].variance),
- 8, 3);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 10 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
percentile_calculate (result->metrics[v].quartiles[2],
percentile_algorithm) -
percentile_calculate (result->metrics[v].quartiles[0],
percentile_algorithm),
- 8, 2);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 11 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
result->metrics[v].skewness,
- 8, 3);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 12 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
result->metrics[v].kurtosis,
- 8, 3);
+ NULL);
- tab_float (tbl, n_cols - 1,
+ tab_double (tbl, n_cols - 1,
heading_rows + row_var_start + 11 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
calc_seskew (result->metrics[v].n),
- 8, 3);
+ NULL);
- tab_float (tbl, n_cols - 1,
+ tab_double (tbl, n_cols - 1,
heading_rows + row_var_start + 12 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
calc_sekurt (result->metrics[v].n),
- 8, 3);
+ NULL);
{
struct extremum *minimum, *maximum ;
maximum = ll_data (max_ll, struct extremum, ll);
minimum = ll_data (min_ll, struct extremum, ll);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 7 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
minimum->value,
- 8, 3);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 8 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
maximum->value,
- 8, 3);
+ NULL);
- tab_float (tbl, n_cols - 2,
+ tab_double (tbl, n_cols - 2,
heading_rows + row_var_start + 9 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
maximum->value - minimum->value,
- 8, 3);
+ NULL);
}
}
}
while (weight-- > 0 && e < cmd.st_n)
{
- tab_float (tbl, n_cols - 1,
+ tab_double (tbl, n_cols - 1,
heading_rows + row_var_start + row_result_start + cmd.st_n + e,
TAB_RIGHT,
minimum->value,
- 8, 2);
+ NULL);
- tab_float (tbl, n_cols - 2,
- heading_rows + row_var_start + row_result_start + cmd.st_n + e,
+ tab_fixed (tbl, n_cols - 2,
+ heading_rows + row_var_start +
+ row_result_start + cmd.st_n + e,
TAB_RIGHT,
minimum->location,
- 8, 0);
+ 10, 0);
++e;
}
while (weight-- > 0 && e < cmd.st_n)
{
- tab_float (tbl, n_cols - 1,
- heading_rows + row_var_start + row_result_start + e,
+ tab_double (tbl, n_cols - 1,
+ heading_rows + row_var_start +
+ row_result_start + e,
TAB_RIGHT,
maximum->value,
- 8, 2);
+ NULL);
- tab_float (tbl, n_cols - 2,
- heading_rows + row_var_start + row_result_start + e,
+ tab_fixed (tbl, n_cols - 2,
+ heading_rows + row_var_start +
+ row_result_start + e,
TAB_RIGHT,
maximum->location,
- 8, 0);
+ 10, 0);
++e;
}
for (j = 0; j < n_percentiles; ++j)
{
double hinge = SYSMIS;
- tab_float (tbl, n_cols - n_percentiles + j,
+ tab_double (tbl, n_cols - n_percentiles + j,
heading_rows + row_var_start + i * PERCENTILE_ROWS,
TAB_CENTER,
percentile_calculate (result->metrics[v].ptl[j],
percentile_algorithm),
- 8, 2
+ NULL
);
if ( result->metrics[v].ptl[j]->ptile == 0.5)
hinge = hinges[2];
if ( hinge != SYSMIS)
- tab_float (tbl, n_cols - n_percentiles + j,
+ tab_double (tbl, n_cols - n_percentiles + j,
heading_rows + row_var_start + 1 + i * PERCENTILE_ROWS,
TAB_CENTER,
hinge,
- 8, 2
+ NULL
);
}