projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Oneway: Fix problems with MISSING=ANALYSIS
[pspp]
/
src
/
language
/
stats
/
oneway.c
diff --git
a/src/language/stats/oneway.c
b/src/language/stats/oneway.c
index 69570bbc6b9f2c76b396597387e7bdca5af3df2e..d08e3114c04d8155d6fe035000ba42745f05dc07 100644
(file)
--- a/
src/language/stats/oneway.c
+++ b/
src/language/stats/oneway.c
@@
-469,16
+469,21
@@
run_oneway (const struct oneway_spec *cmd,
for (i = 0; i < cmd->n_vars; ++i)
{
for (i = 0; i < cmd->n_vars; ++i)
{
+ const struct variable *v = cmd->vars[i];
+ const union value *val = case_data (c, v);
+
+ if ( MISS_ANALYSIS == cmd->missing_type)
+ {
+ if ( var_is_value_missing (v, val, cmd->exclude))
+ continue;
+ }
+
{
struct per_var_ws *pvw = &ws.vws[i];
covariance_accumulate_pass1 (pvw->cov, c);
}
{
struct per_var_ws *pvw = &ws.vws[i];
covariance_accumulate_pass1 (pvw->cov, c);
}
- const struct variable *v = cmd->vars[i];
-
- const union value *val = case_data (c, v);
-
struct group_proc *gp = group_proc_get (cmd->vars[i]);
struct hsh_table *group_hash = gp->group_hash;
struct group_proc *gp = group_proc_get (cmd->vars[i]);
struct hsh_table *group_hash = gp->group_hash;
@@
-537,6
+542,15
@@
run_oneway (const struct oneway_spec *cmd,
for (i = 0; i < cmd->n_vars; ++i)
{
struct per_var_ws *pvw = &ws.vws[i];
for (i = 0; i < cmd->n_vars; ++i)
{
struct per_var_ws *pvw = &ws.vws[i];
+ const struct variable *v = cmd->vars[i];
+ const union value *val = case_data (c, v);
+
+ if ( MISS_ANALYSIS == cmd->missing_type)
+ {
+ if ( var_is_value_missing (v, val, cmd->exclude))
+ continue;
+ }
+
covariance_accumulate_pass2 (pvw->cov, c);
}
}
covariance_accumulate_pass2 (pvw->cov, c);
}
}