projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
output: Add auxiliary data parameter to tab_dim.
[pspp-builds.git]
/
src
/
language
/
stats
/
examine.q
diff --git
a/src/language/stats/examine.q
b/src/language/stats/examine.q
index 78ea0e63c0b1989f3f35a0a1e1105e5bb269f76d..4a7f1f031562d948bb5c03d11f35bf7f82bb9b10 100644
(file)
--- a/
src/language/stats/examine.q
+++ b/
src/language/stats/examine.q
@@
-198,7
+198,7
@@
factor_destroy (struct xfactor *fctr)
}
static struct xfactor level0_factor;
}
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,
/* Parse the clause specifying the factors */
static int examine_parse_independent_vars (struct lexer *lexer,
@@
-207,6
+207,7
@@
static int examine_parse_independent_vars (struct lexer *lexer,
/* Output functions */
static void show_summary (const struct variable **dependent_var, int n_dep_var,
/* Output functions */
static void show_summary (const struct variable **dependent_var, int n_dep_var,
+ const struct dictionary *dict,
const struct xfactor *f);
const struct xfactor *f);
@@
-231,7
+232,7
@@
static void show_extremes (const struct variable **dependent_var,
static void run_examine (struct cmd_examine *, struct casereader *,
struct dataset *);
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,
void factor_calc (const struct ccase *c, int case_no,
@@
-268,6
+269,8
@@
cmd_examine (struct lexer *lexer, struct dataset *ds)
subc_list_double_create (&percentile_list);
percentile_algorithm = PC_HAVERAGE;
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);
if ( !parse_examine (lexer, ds, &cmd, NULL) )
{
subc_list_double_destroy (&percentile_list);
@@
-626,11
+629,11
@@
show_boxplot_variables (const struct variable **dependent_var,
/* Show all the appropriate tables */
static void
/* Show all the appropriate tables */
static void
-output_examine (
void
)
+output_examine (
const struct dictionary *dict
)
{
struct ll *ll;
{
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);
if ( cmd.a_statistics[XMN_ST_EXTREME] )
show_extremes (dependent_vars, n_dependent_vars, &level0_factor);
@@
-657,7
+660,7
@@
output_examine (void)
ll != ll_null (&factor_list); ll = ll_next (ll))
{
struct xfactor *factor = ll_data (ll, struct xfactor, ll);
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);
if ( cmd.a_statistics[XMN_ST_EXTREME] )
show_extremes (dependent_vars, n_dependent_vars, factor);
@@
-1002,8
+1005,8
@@
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
metric->quartiles[2] = metric->ptl[i];
}
metric->quartiles[2] = metric->ptl[i];
}
- metric->tukey_hinges = tukey_hinges_create (metric->n, metric->cmin);
- metric->trimmed_mean = trimmed_mean_create (metric->n, 0.05);
+ metric->tukey_hinges = tukey_hinges_create (metric->n
_valid
, metric->cmin);
+ metric->trimmed_mean = trimmed_mean_create (metric->n
_valid
, 0.05);
n_os = metric->n_ptiles + 2;
n_os = metric->n_ptiles + 2;
@@
-1178,7
+1181,7
@@
run_examine (struct cmd_examine *cmd, struct casereader *input,
casereader_destroy (input);
casereader_destroy (input);
- output_examine ();
+ output_examine (
dict
);
factor_destroy (&level0_factor);
factor_destroy (&level0_factor);
@@
-1198,8
+1201,12
@@
run_examine (struct cmd_examine *cmd, struct casereader *input,
static void
show_summary (const struct variable **dependent_var, int n_dep_var,
static void
show_summary (const struct variable **dependent_var, int n_dep_var,
+ const struct dictionary *dict,
const struct xfactor *fctr)
{
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"),
static const char *subtitle[]=
{
N_("Valid"),
@@
-1236,7
+1243,7
@@
show_summary (const struct variable **dependent_var, int n_dep_var,
tbl = tab_create (n_cols, n_rows, 0);
tab_headers (tbl, heading_columns, 0, heading_rows, 0);
tbl = tab_create (n_cols, n_rows, 0);
tab_headers (tbl, heading_columns, 0, heading_rows, 0);
- tab_dim (tbl, tab_natural_dimensions);
+ tab_dim (tbl, tab_natural_dimensions
, NULL
);
/* Outline the box */
tab_box (tbl,
/* Outline the box */
tab_box (tbl,
@@
-1391,10
+1398,10
@@
show_summary (const struct variable **dependent_var, int n_dep_var,
result->metrics[v].se_mean = sqrt (result->metrics[v].variance / n) ;
/* Total 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,
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),
tab_text (tbl, heading_columns + 1,
heading_rows + j + v * ll_count (&fctr->result_list),
@@
-1402,11
+1409,11
@@
show_summary (const struct variable **dependent_var, int n_dep_var,
"%g%%", n * 100.0 / result->metrics[v].n);
/* Total Missing */
"%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,
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),
tab_text (tbl, heading_columns + 3,
heading_rows + j + v * ll_count (&fctr->result_list),
@@
-1416,11
+1423,11
@@
show_summary (const struct variable **dependent_var, int n_dep_var,
);
/* Total Valid + Missing */
);
/* 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,
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),
tab_text (tbl, heading_columns + 5,
heading_rows + j + v * ll_count (&fctr->result_list),
@@
-1473,7
+1480,7
@@
show_descriptives (const struct variable **dependent_var,
tbl = tab_create (n_cols, n_rows, 0);
tab_headers (tbl, heading_columns, 0, heading_rows, 0);
tbl = tab_create (n_cols, n_rows, 0);
tab_headers (tbl, heading_columns, 0, heading_rows, 0);
- tab_dim (tbl, tab_natural_dimensions);
+ tab_dim (tbl, tab_natural_dimensions
, NULL
);
/* Outline the box */
tab_box (tbl,
/* Outline the box */
tab_box (tbl,
@@
-1619,93
+1626,93
@@
show_descriptives (const struct variable **dependent_var,
/* Now the statistics ... */
/* 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,
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,
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,
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,
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),
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),
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,
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),
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),
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,
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,
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),
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),
heading_rows + row_var_start + 12 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
calc_sekurt (result->metrics[v].n),
-
8, 3
);
+
NULL
);
{
struct extremum *minimum, *maximum ;
{
struct extremum *minimum, *maximum ;
@@
-1716,23
+1723,23
@@
show_descriptives (const struct variable **dependent_var,
maximum = ll_data (max_ll, struct extremum, ll);
minimum = ll_data (min_ll, struct extremum, ll);
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,
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,
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,
heading_rows + row_var_start + 9 + i * DESCRIPTIVE_ROWS,
TAB_CENTER,
maximum->value - minimum->value,
-
8, 3
);
+
NULL
);
}
}
}
}
}
}
@@
-1786,7
+1793,7
@@
show_extremes (const struct variable **dependent_var,
tbl = tab_create (n_cols, n_rows, 0);
tab_headers (tbl, heading_columns, 0, heading_rows, 0);
tbl = tab_create (n_cols, n_rows, 0);
tab_headers (tbl, heading_columns, 0, heading_rows, 0);
- tab_dim (tbl, tab_natural_dimensions);
+ tab_dim (tbl, tab_natural_dimensions
, NULL
);
/* Outline the box */
tab_box (tbl,
/* Outline the box */
tab_box (tbl,
@@
-1859,18
+1866,19
@@
show_extremes (const struct variable **dependent_var,
while (weight-- > 0 && e < cmd.st_n)
{
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,
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,
TAB_RIGHT,
minimum->location,
-
8
, 0);
+
10
, 0);
++e;
}
++e;
}
@@
-1886,18
+1894,20
@@
show_extremes (const struct variable **dependent_var,
while (weight-- > 0 && e < cmd.st_n)
{
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,
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,
TAB_RIGHT,
maximum->location,
-
8
, 0);
+
10
, 0);
++e;
}
++e;
}
@@
-1988,7
+1998,7
@@
show_percentiles (const struct variable **dependent_var,
tbl = tab_create (n_cols, n_rows, 0);
tab_headers (tbl, heading_columns, 0, heading_rows, 0);
tbl = tab_create (n_cols, n_rows, 0);
tab_headers (tbl, heading_columns, 0, heading_rows, 0);
- tab_dim (tbl, tab_natural_dimensions);
+ tab_dim (tbl, tab_natural_dimensions
, NULL
);
/* Outline the box */
tab_box (tbl,
/* Outline the box */
tab_box (tbl,
@@
-2074,12
+2084,12
@@
show_percentiles (const struct variable **dependent_var,
for (j = 0; j < n_percentiles; ++j)
{
double hinge = SYSMIS;
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),
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)
);
if ( result->metrics[v].ptl[j]->ptile == 0.5)
@@
-2090,11
+2100,11
@@
show_percentiles (const struct variable **dependent_var,
hinge = hinges[2];
if ( hinge != SYSMIS)
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,
heading_rows + row_var_start + 1 + i * PERCENTILE_ROWS,
TAB_CENTER,
hinge,
- 8, 2
+ NULL
);
}
);
}