const gsl_matrix *cov_matrix;
gsl_matrix *corr_matrix;
struct covariance *cov = covariance_create (corr->n_vars_total, corr->vars,
- opts->wv, opts->exclude);
+ opts->wv, opts->exclude, 2);
+
+ struct casereader *rc = casereader_clone (r);
for ( ; (c = casereader_read (r) ); case_unref (c))
{
- covariance_accumulate (cov, c);
+ covariance_accumulate_pass1 (cov, c);
+ }
+
+ for ( ; (c = casereader_read (rc) ); case_unref (c))
+ {
+ covariance_accumulate_pass2 (cov, c);
}
cov_matrix = covariance_calculate (cov);
+ casereader_destroy (rc);
+
+
samples_matrix = covariance_moments (cov, MOMENT_NONE);
var_matrix = covariance_moments (cov, MOMENT_VARIANCE);
mean_matrix = covariance_moments (cov, MOMENT_MEAN);
opts.statistics = STATS_DESCRIPTIVES;
else if (lex_match_id (lexer, "XPROD"))
opts.statistics = STATS_XPROD;
- else if (lex_match_id (lexer, "ALL"))
- opts.statistics = STATS_ALL;
+ else if (lex_token (lexer) == T_ALL)
+ {
+ opts.statistics = STATS_ALL;
+ lex_get (lexer);
+ }
else
{
lex_error (lexer, NULL);