From: John Darrington Date: Sun, 11 Mar 2012 18:00:18 +0000 (+0100) Subject: Regression: Fix bug where missing values in the dependent variable were not getting... X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fbuilds%2F20120313030502%2Fpspp;p=pspp Regression: Fix bug where missing values in the dependent variable were not getting ignored. Fixes bug #35758 --- diff --git a/src/language/stats/regression.q b/src/language/stats/regression.q index 4ef12c9847..ca1f67da0e 100644 --- a/src/language/stats/regression.q +++ b/src/language/stats/regression.q @@ -963,8 +963,10 @@ run_regression (struct casereader *input, struct cmd_regression *cmd, dict_get_weight (dict), MV_ANY); reader = casereader_clone (input); - reader = casereader_create_filter_missing (reader, v_variables, n_variables, + reader = casereader_create_filter_missing (reader, all_vars, n_all_vars, MV_ANY, NULL, NULL); + + for (; (c = casereader_read (reader)) != NULL; case_unref (c)) { covariance_accumulate (cov, c); diff --git a/tests/language/stats/regression.at b/tests/language/stats/regression.at index 81bbce436a..ee1414332b 100644 --- a/tests/language/stats/regression.at +++ b/tests/language/stats/regression.at @@ -1614,3 +1614,62 @@ regression /variables=x y /dependent=y. AT_CHECK([pspp -o pspp.csv regcrash.sps], [1], [ignore], [ignore]) AT_CLEANUP + + + +AT_SETUP([REGRESSION missing dependent variable]) + +dnl Test for a bug where missing values in the dependent variable were not being +dnl ignored like they should have been. +AT_DATA([reg-mdv-ref.sps], [dnl +data list notable list / v0 to v2. +begin data + 0.65377128 7.735648 -23.97588 +-0.13087553 6.142625 -19.63854 + 0.34880368 7.651430 -25.26557 + 0.69249021 6.125125 -16.57090 +-0.07368178 8.245789 -25.80001 +-0.34404919 6.031540 -17.56743 + 0.75981559 9.832291 -28.35977 +-0.46958313 5.343832 -16.79548 +-0.06108490 8.838262 -29.25689 + 0.56154863 6.200189 -18.58219 +end data +regression /variables=v0 v1 + /statistics defaults + /dependent=v2 + /method=enter. +]) + +AT_CHECK([pspp -o pspp-ref.csv reg-mdv-ref.sps]) + +AT_DATA([reg-mdv.sps], [dnl +data list notable list / v0 to v2. +begin data + 0.65377128 7.735648 -23.97588 +-0.13087553 6.142625 -19.63854 + 0.34880368 7.651430 -25.26557 + 0.69249021 6.125125 -16.57090 +-0.07368178 8.245789 -25.80001 +-0.34404919 6.031540 -17.56743 + 0.75981559 9.832291 -28.35977 +-0.46958313 5.343832 -16.79548 +-0.06108490 8.838262 -29.25689 + 0.56154863 6.200189 -18.58219 + 0.5 8 9 +end data + +missing values v2 (9). + +regression /variables=v0 v1 + /statistics defaults + /dependent=v2 + /method=enter. +]) + +AT_CHECK([pspp -o pspp.csv reg-mdv.sps]) + +AT_CHECK([diff pspp.csv pspp-ref.csv]) + + +AT_CLEANUP