X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fexamine.q;h=562defe7b403ca7663722cb70b1394d50584bbb5;hb=79e615c130eb0eaa23c7c220a51c3cf00e17b3a6;hp=4e28f23917501542defa0803efbc9cc4667b9610;hpb=b7852df2743416201dc85fd672644799cdd1b7b5;p=pspp diff --git a/src/examine.q b/src/examine.q index 4e28f23917..562defe7b4 100644 --- a/src/examine.q +++ b/src/examine.q @@ -15,8 +15,8 @@ General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. */ #include #include @@ -49,7 +49,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA /* (specification) "EXAMINE" (xmn_): - *variables=custom; + *^variables=custom; +total=custom; +nototal=custom; +missing=miss:pairwise/!listwise, @@ -372,6 +372,8 @@ output_examine(void) } +/* Create a hash table of percentiles and their values from the list of + percentiles */ static struct hsh_table * list_to_ptile_hash(const subc_list_double *l) { @@ -391,6 +393,7 @@ list_to_ptile_hash(const subc_list_double *l) struct percentile *p = xmalloc (sizeof (struct percentile)); p->p = subc_list_double_at(l,i); + p->v = SYSMIS; hsh_insert(h, p); @@ -410,9 +413,9 @@ xmn_custom_percentiles(struct cmd_examine *p UNUSED) lex_match('('); - while ( lex_double_p() ) + while ( lex_is_number() ) { - subc_list_double_push(&percentile_list,lex_double()); + subc_list_double_push(&percentile_list,lex_number()); lex_get(); @@ -609,6 +612,7 @@ factor_calc(struct ccase *c, int case_no, double weight, int case_missing) while ( fctr) { + struct factor_statistics **foo ; union value indep_vals[2] ; indep_vals[0] = * case_data(c, fctr->indep_var[0]->fv); @@ -620,7 +624,7 @@ factor_calc(struct ccase *c, int case_no, double weight, int case_missing) assert(fctr->fstats); - struct factor_statistics **foo = ( struct factor_statistics ** ) + foo = ( struct factor_statistics ** ) hsh_probe(fctr->fstats, (void *) &indep_vals); if ( !*foo ) @@ -1505,8 +1509,8 @@ populate_descriptives(struct tab_table *tbl, int col, int row, tab_text (tbl, col, row + 3, - TAB_LEFT | TAT_TITLE, - _("5% Trimmed Mean")); + TAB_LEFT | TAT_TITLE | TAT_PRINTF, + _("5%% Trimmed Mean")); tab_float (tbl, col + 2, row + 3, @@ -1527,12 +1531,14 @@ populate_descriptives(struct tab_table *tbl, int col, int row, assert(p); + tab_float (tbl, col + 2, row + 4, TAB_CENTER, p->v, 8, 2); } + tab_text (tbl, col, row + 5, @@ -1684,10 +1690,7 @@ box_plot_variables(const struct factor *fctr, { double y_min = DBL_MAX; double y_max = -DBL_MAX; - struct chart *ch; - - ch = chart_create(); - + struct chart *ch = chart_create(); const char *s = factor_to_string(fctr, *fs, 0 ); chart_write_title(ch, s); @@ -1772,7 +1775,7 @@ box_plot_group(const struct factor *fctr, s); } } - else + else if ( ch ) { const double box_width = (ch->data_right - ch->data_left) / 3.0; const double box_centre = (ch->data_right + ch->data_left) / 2.0; @@ -1851,8 +1854,7 @@ np_plot(const struct metrics *m, const char *factorname) { /* We have to cache the detrended data, beacause we need to find its limits before we can plot it */ - double *d_data; - d_data = xmalloc (m->n_data * sizeof(double)); + double *d_data = xmalloc (m->n_data * sizeof(double)); double d_max = -DBL_MAX; double d_min = DBL_MAX; for ( i = 0 ; i < m->n_data; ++i )