projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'origin/stable'
[pspp-builds.git]
/
src
/
language
/
stats
/
examine.q
diff --git
a/src/language/stats/examine.q
b/src/language/stats/examine.q
index 94f3640503e3688bec11fd1605dc4ca960aeab3a..51f2832052e57461e628b96353c4d16b3101f6d4 100644
(file)
--- a/
src/language/stats/examine.q
+++ b/
src/language/stats/examine.q
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 2004, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2008
, 2009
Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-34,9
+34,9
@@
#include <data/casegrouper.h>
#include <data/casereader.h>
#include <data/casewriter.h>
#include <data/casegrouper.h>
#include <data/casereader.h>
#include <data/casewriter.h>
-#include <data/case-ordering.h>
#include <data/dictionary.h>
#include <data/procedure.h>
#include <data/dictionary.h>
#include <data/procedure.h>
+#include <data/subcase.h>
#include <data/value-labels.h>
#include <data/variable.h>
#include <language/command.h>
#include <data/value-labels.h>
#include <data/variable.h>
#include <language/command.h>
@@
-110,18
+110,21
@@
struct factor_metrics
struct statistic *histogram;
struct order_stats *np;
struct statistic *histogram;
struct order_stats *np;
- /* T
ukey_Hinges
ree quartiles indexing into PTL */
+ /* T
h
ree quartiles indexing into PTL */
struct percentile **quartiles;
/* A reader sorted in ASCENDING order */
struct casereader *up_reader;
struct percentile **quartiles;
/* A reader sorted in ASCENDING order */
struct casereader *up_reader;
- /* T
ukey_Hingese minimum value of all tukey_hinges
e weights */
+ /* T
he minimum value of all th
e weights */
double cmin;
double cmin;
- /* Sum of all weights, including t
ukey_hinges
ose for missing values */
+ /* Sum of all weights, including t
h
ose for missing values */
double n;
double n;
+ /* Sum of weights of non_missing values */
+ double n_valid;
+
double mean;
double variance;
double mean;
double variance;
@@
-148,13
+151,13
@@
struct factor_result
struct xfactor
{
struct xfactor
{
- /* We need to make a list of t
ukey_hinges
is structure */
+ /* We need to make a list of t
h
is structure */
struct ll ll;
struct ll ll;
- /* T
ukey_Hinges
e independent variable */
+ /* T
h
e independent variable */
const struct variable const* indep_var[2];
const struct variable const* indep_var[2];
- /* A list of results for t
ukey_hinges
is factor */
+ /* A list of results for t
h
is factor */
struct ll_list result_list ;
};
struct ll_list result_list ;
};
@@
-195,15
+198,16
@@
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 t
ukey_hingese clause specifying tukey_hinges
e factors */
+/* Parse t
he clause specifying th
e factors */
static int examine_parse_independent_vars (struct lexer *lexer,
const struct dictionary *dict,
struct cmd_examine *cmd);
/* Output functions */
static void show_summary (const struct variable **dependent_var, int n_dep_var,
static int examine_parse_independent_vars (struct lexer *lexer,
const struct dictionary *dict,
struct cmd_examine *cmd);
/* 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);
@@
-228,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,
@@
-243,7
+247,7
@@
static void factor_to_string (const struct xfactor *fctr,
/* Represent a factor as a string, so it can be
printed in a human readable fashion,
/* Represent a factor as a string, so it can be
printed in a human readable fashion,
- but sacrificing some readablility for t
ukey_hinges
e sake of brevity */
+ but sacrificing some readablility for t
h
e sake of brevity */
static void
factor_to_string_concise (const struct xfactor *fctr,
const struct factor_result *result,
static void
factor_to_string_concise (const struct xfactor *fctr,
const struct factor_result *result,
@@
-265,13
+269,15
@@
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);
return CMD_FAILURE;
}
if ( !parse_examine (lexer, ds, &cmd, NULL) )
{
subc_list_double_destroy (&percentile_list);
return CMD_FAILURE;
}
- /* If /MISSING=INCLUDE is set, t
ukey_hinges
en user missing values are ignored */
+ /* If /MISSING=INCLUDE is set, t
h
en user missing values are ignored */
exclude_values = cmd.incl == XMN_INCLUDE ? MV_SYSTEM : MV_ANY;
if ( cmd.st_n == SYSMIS )
exclude_values = cmd.incl == XMN_INCLUDE ? MV_SYSTEM : MV_ANY;
if ( cmd.st_n == SYSMIS )
@@
-280,7
+286,7
@@
cmd_examine (struct lexer *lexer, struct dataset *ds)
if ( ! cmd.sbc_cinterval)
cmd.n_cinterval[0] = 95.0;
if ( ! cmd.sbc_cinterval)
cmd.n_cinterval[0] = 95.0;
- /* If descriptives have been requested, make sure t
ukey_hinges
e
+ /* If descriptives have been requested, make sure t
h
e
quartiles are calculated */
if ( cmd.a_statistics[XMN_ST_DESCRIPTIVES] )
{
quartiles are calculated */
if ( cmd.a_statistics[XMN_ST_DESCRIPTIVES] )
{
@@
-369,14
+375,14
@@
np_plot (struct np *np, const char *label)
chart_write_yscale (dnp_chart, np->dns_min, np->dns_max, 5);
{
chart_write_yscale (dnp_chart, np->dns_min, np->dns_max, 5);
{
- struct ccase c;
struct casereader *reader = casewriter_make_reader (np->writer);
struct casereader *reader = casewriter_make_reader (np->writer);
- while (casereader_read (reader, &c))
+ struct ccase *c;
+ while ((c = casereader_read (reader)) != NULL)
{
{
- chart_datum (np_chart, 0, case_data_idx (
&c, NP_IDX_Y)->f, case_data_idx (&
c, NP_IDX_NS)->f);
- chart_datum (dnp_chart, 0, case_data_idx (
&c, NP_IDX_Y)->f, case_data_idx (&
c, NP_IDX_DNS)->f);
+ chart_datum (np_chart, 0, case_data_idx (
c, NP_IDX_Y)->f, case_data_idx (
c, NP_IDX_NS)->f);
+ chart_datum (dnp_chart, 0, case_data_idx (
c, NP_IDX_Y)->f, case_data_idx (
c, NP_IDX_DNS)->f);
- case_
destroy (&
c);
+ case_
unref (
c);
}
casereader_destroy (reader);
}
}
casereader_destroy (reader);
}
@@
-623,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);
@@
-654,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);
@@
-866,7
+872,7
@@
static void
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
const struct dictionary *dict, struct xfactor *factor)
{
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
const struct dictionary *dict, struct xfactor *factor)
{
- struct ccase c;
+ struct ccase
*
c;
const struct variable *wv = dict_get_weight (dict);
int v;
int n_extrema = 1;
const struct variable *wv = dict_get_weight (dict);
int v;
int n_extrema = 1;
@@
-878,20
+884,21
@@
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
n_extrema = cmd->st_n;
n_extrema = cmd->st_n;
- if (casereader_peek (reader, 0, &c))
+ c = casereader_peek (reader, 0);
+ if (c != NULL)
{
if ( level > 0)
{
result->value[0] =
{
if ( level > 0)
{
result->value[0] =
- value_dup (case_data (
&
c, factor->indep_var[0]),
+ value_dup (case_data (c, factor->indep_var[0]),
var_get_width (factor->indep_var[0]));
if ( level > 1)
result->value[1] =
var_get_width (factor->indep_var[0]));
if ( level > 1)
result->value[1] =
- value_dup (case_data (
&
c, factor->indep_var[1]),
+ value_dup (case_data (c, factor->indep_var[1]),
var_get_width (factor->indep_var[1]));
}
var_get_width (factor->indep_var[1]));
}
- case_
destroy (&
c);
+ case_
unref (
c);
}
for (v = 0; v < n_dependent_vars; ++v)
}
for (v = 0; v < n_dependent_vars; ++v)
@@
-911,11
+918,11
@@
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
{
/* In this case, we need to sort the data, so we create a sorting
casewriter */
{
/* In this case, we need to sort the data, so we create a sorting
casewriter */
- struct case_ordering *up_ordering = case_ordering_create ();
-
- case_ordering_add_var (up_ordering, dependent_vars[v], SRT_ASCEND);
- writer = sort_create_writer (up_ordering,
+ struct subcase up_ordering;
+ subcase_init_var (&up_ordering, dependent_vars[v], SC_ASCEND);
+ writer = sort_create_writer (&up_ordering,
casereader_get_value_cnt (reader));
casereader_get_value_cnt (reader));
+ subcase_destroy (&up_ordering);
}
else
{
}
else
{
@@
-927,33
+934,37
@@
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
/* Sort or just iterate, whilst calculating moments etc */
/* Sort or just iterate, whilst calculating moments etc */
- while (
casereader_read (input, &c)
)
+ while (
(c = casereader_read (input)) != NULL
)
{
const casenumber loc =
{
const casenumber loc =
- case_data_idx (
&
c, casereader_get_value_cnt (reader) - 1)->f;
+ case_data_idx (c, casereader_get_value_cnt (reader) - 1)->f;
- const double weight = wv ? case_data (&c, wv)->f : 1.0;
+ const double weight = wv ? case_data (c, wv)->f : 1.0;
+ const union value *value = case_data (c, dependent_vars[v]);
if (weight != SYSMIS)
minimize (&result->metrics[v].cmin, weight);
moments1_add (result->metrics[v].moments,
if (weight != SYSMIS)
minimize (&result->metrics[v].cmin, weight);
moments1_add (result->metrics[v].moments,
-
case_data (&c, dependent_vars[v])
->f,
+
value
->f,
weight);
result->metrics[v].n += weight;
weight);
result->metrics[v].n += weight;
+ if ( ! var_is_value_missing (dependent_vars[v], value, MV_ANY) )
+ result->metrics[v].n_valid += weight;
+
extrema_add (result->metrics[v].maxima,
extrema_add (result->metrics[v].maxima,
-
case_data (&c, dependent_vars[v])
->f,
+
value
->f,
weight,
loc);
extrema_add (result->metrics[v].minima,
weight,
loc);
extrema_add (result->metrics[v].minima,
-
case_data (&c, dependent_vars[v])
->f,
+
value
->f,
weight,
loc);
weight,
loc);
- casewriter_write (writer,
&
c);
+ casewriter_write (writer, c);
}
casereader_destroy (input);
result->metrics[v].up_reader = casewriter_make_reader (writer);
}
casereader_destroy (input);
result->metrics[v].up_reader = casewriter_make_reader (writer);
@@
-984,7
+995,7
@@
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
for (i = 0 ; i < metric->n_ptiles; ++i)
{
metric->ptl[i] = (struct percentile *)
for (i = 0 ; i < metric->n_ptiles; ++i)
{
metric->ptl[i] = (struct percentile *)
- percentile_create (percentile_list.data[i] / 100.0, metric->n);
+ percentile_create (percentile_list.data[i] / 100.0, metric->n
_valid
);
if ( percentile_list.data[i] == 25)
metric->quartiles[0] = metric->ptl[i];
if ( percentile_list.data[i] == 25)
metric->quartiles[0] = metric->ptl[i];
@@
-1020,7
+1031,7
@@
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
order_stats_accumulate (os, n_os,
casereader_clone (metric->up_reader),
order_stats_accumulate (os, n_os,
casereader_clone (metric->up_reader),
- wv, dependent_vars[v]);
+ wv, dependent_vars[v]
, MV_ANY
);
free (os);
}
}
free (os);
}
}
@@
-1028,7
+1039,7
@@
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
/* FIXME: Do this in the above loop */
if ( cmd->a_plot[XMN_PLT_HISTOGRAM] )
{
/* FIXME: Do this in the above loop */
if ( cmd->a_plot[XMN_PLT_HISTOGRAM] )
{
- struct ccase c;
+ struct ccase
*
c;
struct casereader *input = casereader_clone (reader);
for (v = 0; v < n_dependent_vars; ++v)
struct casereader *input = casereader_clone (reader);
for (v = 0; v < n_dependent_vars; ++v)
@@
-1059,18
+1070,18
@@
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
metric->histogram = histogram_create (10, min->value, max->value);
}
metric->histogram = histogram_create (10, min->value, max->value);
}
- while (
casereader_read (input, &c)
)
+ while (
(c = casereader_read (input)) != NULL
)
{
{
- const double weight = wv ? case_data (
&
c, wv)->f : 1.0;
+ const double weight = wv ? case_data (c, wv)->f : 1.0;
for (v = 0; v < n_dependent_vars; ++v)
{
struct factor_metrics *metric = &result->metrics[v];
if ( metric->histogram)
histogram_add ((struct histogram *) metric->histogram,
for (v = 0; v < n_dependent_vars; ++v)
{
struct factor_metrics *metric = &result->metrics[v];
if ( metric->histogram)
histogram_add ((struct histogram *) metric->histogram,
- case_data (
&
c, dependent_vars[v])->f, weight);
+ case_data (c, dependent_vars[v])->f, weight);
}
}
- case_
destroy (&
c);
+ case_
unref (
c);
}
casereader_destroy (input);
}
}
casereader_destroy (input);
}
@@
-1091,7
+1102,7
@@
examine_group (struct cmd_examine *cmd, struct casereader *reader, int level,
order_stats_accumulate ((struct order_stats **) &metric->box_whisker,
1,
casereader_clone (metric->up_reader),
order_stats_accumulate ((struct order_stats **) &metric->box_whisker,
1,
casereader_clone (metric->up_reader),
- wv, dependent_vars[v]);
+ wv, dependent_vars[v]
, MV_ANY
);
}
}
}
}
@@
-1106,17
+1117,18
@@
run_examine (struct cmd_examine *cmd, struct casereader *input,
{
struct ll *ll;
const struct dictionary *dict = dataset_dict (ds);
{
struct ll *ll;
const struct dictionary *dict = dataset_dict (ds);
- struct ccase c;
+ struct ccase
*
c;
struct casereader *level0 = casereader_clone (input);
struct casereader *level0 = casereader_clone (input);
- if (!casereader_peek (input, 0, &c))
+ c = casereader_peek (input, 0);
+ if (c == NULL)
{
casereader_destroy (input);
return;
}
{
casereader_destroy (input);
return;
}
- output_split_file_values (ds,
&
c);
- case_
destroy (&
c);
+ output_split_file_values (ds, c);
+ case_
unref (
c);
ll_init (&level0_factor.result_list);
ll_init (&level0_factor.result_list);
@@
-1131,15
+1143,10
@@
run_examine (struct cmd_examine *cmd, struct casereader *input,
struct casereader *group = NULL;
struct casereader *level1;
struct casegrouper *grouper1 = NULL;
struct casereader *group = NULL;
struct casereader *level1;
struct casegrouper *grouper1 = NULL;
- struct case_ordering *ordering1 = case_ordering_create ();
- case_ordering_add_var (ordering1, factor->indep_var[0], SRT_ASCEND);
level1 = casereader_clone (input);
level1 = casereader_clone (input);
-
- level1 = sort_execute (level1,
- case_ordering_clone (ordering1));
- grouper1 = casegrouper_create_case_ordering (level1, ordering1);
- case_ordering_destroy (ordering1);
+ level1 = sort_execute_1var (level1, factor->indep_var[0]);
+ grouper1 = casegrouper_create_vars (level1, &factor->indep_var[0], 1);
while (casegrouper_get_next_group (grouper1, &group))
{
while (casegrouper_get_next_group (grouper1, &group))
{
@@
-1152,16
+1159,12
@@
run_examine (struct cmd_examine *cmd, struct casereader *input,
int n_groups = 0;
struct casereader *group2 = NULL;
struct casegrouper *grouper2 = NULL;
int n_groups = 0;
struct casereader *group2 = NULL;
struct casegrouper *grouper2 = NULL;
- struct case_ordering *ordering2 = case_ordering_create ();
- case_ordering_add_var (ordering2,
- factor->indep_var[1], SRT_ASCEND);
- group_copy = sort_execute (group_copy,
- case_ordering_clone (ordering2));
- grouper2 =
- casegrouper_create_case_ordering (group_copy, ordering2);
+ group_copy = sort_execute_1var (group_copy,
+ factor->indep_var[1]);
- case_ordering_destroy (ordering2);
+ grouper2 = casegrouper_create_vars (group_copy,
+ &factor->indep_var[1], 1);
while (casegrouper_get_next_group (grouper2, &group2))
{
while (casegrouper_get_next_group (grouper2, &group2))
{
@@
-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"),
@@
-1337,8
+1344,8
@@
show_summary (const struct variable **dependent_var, int n_dep_var,
{
if ( last_value == NULL ||
{
if ( last_value == NULL ||
- compare_values (last_value, result->value[0],
-
var_get_width(fctr->indep_var[0])
))
+ compare_values
_short
(last_value, result->value[0],
+
fctr->indep_var[0]
))
{
struct string str;
{
struct string str;
@@
-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),
@@
-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
);
}
}
}
}
}
}
@@
-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;
}
@@
-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
);
}
);
}