1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 Free Software Foundation, Inc.
4 dnl This program is free software: you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation, either version 3 of the License, or
7 dnl (at your option) any later version.
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 dnl GNU General Public License for more details.
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
17 AT_BANNER([DESCRIPTIVES procedure])
19 AT_SETUP([DESCRIPTIVES basics])
20 AT_DATA([descriptives.sps],
21 [title 'Test DESCRIPTIVES procedure'.
23 data list / V0 to V16 1-17.
37 descript all/stat=all/format=serial.
39 AT_CHECK([pspp -O format=csv descriptives.sps], [0], [dnl
40 Table: Reading 1 record from INLINE.
41 Variable,Record,Columns,Format
60 Table: Valid cases = 10; cases with missing value(s) = 0.
61 Variable,Valid N,Missing N,Mean,S.E. Mean,Std Dev,Variance,Kurtosis,S.E. Kurt,Skewness,S.E. Skew,Range,Minimum,Maximum,Sum
62 V0,10,0,3.80,.84,2.66,7.07,-.03,1.33,.89,.69,8.00,1.00,9.00,38.00
63 V1,10,0,4.60,.96,3.03,9.16,-1.39,1.33,-.03,.69,9.00,.00,9.00,46.00
64 V2,10,0,4.10,1.16,3.67,13.43,-2.02,1.33,.48,.69,8.00,1.00,9.00,41.00
65 V3,10,0,4.10,.87,2.77,7.66,-2.05,1.33,.42,.69,7.00,1.00,8.00,41.00
66 V4,10,0,7.00,.47,1.49,2.22,7.15,1.33,-2.52,.69,5.00,3.00,8.00,70.00
67 V5,10,0,4.90,1.03,3.25,10.54,-1.40,1.33,-.20,.69,9.00,.00,9.00,49.00
68 V6,10,0,5.90,.80,2.51,6.32,-.29,1.33,-.96,.69,7.00,1.00,8.00,59.00
69 V7,10,0,4.70,1.10,3.47,12.01,-1.99,1.33,-.16,.69,9.00,.00,9.00,47.00
70 V8,10,0,4.10,1.10,3.48,12.10,-1.93,1.33,.37,.69,9.00,.00,9.00,41.00
71 V9,10,0,4.30,.87,2.75,7.57,-.87,1.33,.73,.69,8.00,1.00,9.00,43.00
72 V10,10,0,5.50,.85,2.68,7.17,-1.84,1.33,-.33,.69,7.00,2.00,9.00,55.00
73 V11,10,0,6.50,.78,2.46,6.06,-1.28,1.33,-.89,.69,6.00,3.00,9.00,65.00
74 V12,10,0,7.90,.60,1.91,3.66,5.24,1.33,-2.21,.69,6.00,3.00,9.00,79.00
75 V13,10,0,4.30,.99,3.13,9.79,-1.25,1.33,.33,.69,9.00,.00,9.00,43.00
76 V14,10,0,3.60,1.01,3.20,10.27,-.96,1.33,.81,.69,9.00,.00,9.00,36.00
77 V15,10,0,3.70,.92,2.91,8.46,-1.35,1.33,.71,.69,7.00,1.00,8.00,37.00
78 V16,10,0,6.40,.91,2.88,8.27,-1.14,1.33,-.92,.69,7.00,2.00,9.00,64.00
82 m4_define([DESCRIPTIVES_MISSING_DATA],
83 [data list notable / V1 TO V3 1-3.
96 AT_SETUP([DESCRIPTIVES -- excluding missing data])
97 AT_DATA([descriptives.sps],
98 [DESCRIPTIVES_MISSING_DATA
99 descript all/stat=all/format=serial.
101 AT_CHECK([pspp -O format=csv descriptives.sps], [0],
102 [Table: Valid cases = 7; cases with missing value(s) = 6.
103 Variable,Valid N,Missing N,Mean,S.E. Mean,Std Dev,Variance,Kurtosis,S.E. Kurt,Skewness,S.E. Skew,Range,Minimum,Maximum,Sum
104 V1,1,6,2.00,. ,. ,. ,. ,. ,. ,. ,.00,2.00,2.00,2.00
105 V2,2,5,2.50,.50,.71,.50,. ,. ,. ,. ,1.00,2.00,3.00,5.00
106 V3,3,4,3.00,.58,1.00,1.00,. ,. ,.00,1.22,2.00,2.00,4.00,9.00
110 AT_SETUP([DESCRIPTIVES -- including missing data])
111 AT_DATA([descriptives.sps],
112 [DESCRIPTIVES_MISSING_DATA
113 descript all/stat=all/format=serial/missing=include.
115 AT_CHECK([pspp -O format=csv descriptives.sps], [0],
116 [Table: Valid cases = 7; cases with missing value(s) = 3.
117 Variable,Valid N,Missing N,Mean,S.E. Mean,Std Dev,Variance,Kurtosis,S.E. Kurt,Skewness,S.E. Skew,Range,Minimum,Maximum,Sum
118 V1,5,2,1.20,.20,.45,.20,5.00,2.00,2.24,.91,1.00,1.00,2.00,6.00
119 V2,5,2,1.60,.40,.89,.80,.31,2.00,1.26,.91,2.00,1.00,3.00,8.00
120 V3,5,2,2.20,.58,1.30,1.70,-1.49,2.00,.54,.91,3.00,1.00,4.00,11.00
124 AT_SETUP([DESCRIPTIVES -- excluding missing data listwise])
125 AT_DATA([descriptives.sps],
126 [DESCRIPTIVES_MISSING_DATA
127 descript all/stat=all/format=serial/missing=listwise.
129 AT_CHECK([pspp -O format=csv descriptives.sps], [0],
130 [Table: Valid cases = 1; cases with missing value(s) = 6.
131 Variable,Valid N,Missing N,Mean,S.E. Mean,Std Dev,Variance,Kurtosis,S.E. Kurt,Skewness,S.E. Skew,Range,Minimum,Maximum,Sum
132 V1,1,0,2.00,. ,. ,. ,. ,. ,. ,. ,.00,2.00,2.00,2.00
133 V2,1,0,3.00,. ,. ,. ,. ,. ,. ,. ,.00,3.00,3.00,3.00
134 V3,1,0,4.00,. ,. ,. ,. ,. ,. ,. ,.00,4.00,4.00,4.00
138 AT_SETUP([DESCRIPTIVES -- including missing data listwise])
139 AT_DATA([descriptives.sps],
140 [DESCRIPTIVES_MISSING_DATA
141 descript all/stat=all/format=serial/missing=listwise include.
143 AT_CHECK([pspp -O format=csv descriptives.sps], [0],
144 [Table: Valid cases = 4; cases with missing value(s) = 3.
145 Variable,Valid N,Missing N,Mean,S.E. Mean,Std Dev,Variance,Kurtosis,S.E. Kurt,Skewness,S.E. Skew,Range,Minimum,Maximum,Sum
146 V1,4,0,1.25,.25,.50,.25,4.00,2.62,2.00,1.01,1.00,1.00,2.00,5.00
147 V2,4,0,1.75,.48,.96,.92,-1.29,2.62,.85,1.01,2.00,1.00,3.00,7.00
148 V3,4,0,2.50,.65,1.29,1.67,-1.20,2.62,.00,1.01,3.00,1.00,4.00,10.00
152 AT_SETUP([DESCRIPTIVES bug calculating mean only])
153 AT_DATA([descriptives.sps],
156 data list notable / X 1.
166 descript all/stat=mean.
168 AT_CHECK([pspp -O format=csv descriptives.sps], [0],
169 [Table: Valid cases = 6; cases with missing value(s) = 0.
175 dnl Git history shows that this was probably a bug in the PSPP
176 dnl core regarding multipass procedures, not anything specific
178 AT_SETUP([DESCRIPTIVES bug with TEMPORARY])
179 AT_DATA([descriptives.sps], [dnl
180 DATA LIST LIST NOTABLE /id * abc *.
194 DESCRIPTIVES /VAR=abc.
196 AT_CHECK([pspp -O format=csv descriptives.sps], [0], [dnl
197 Table: Valid cases = 6; cases with missing value(s) = 0.
198 Variable,N,Mean,Std Dev,Minimum,Maximum
199 abc,6,3.00,.84,2.00,4.00
203 AT_SETUP([DESCRIPTIVES -- Z scores])
204 AT_DATA([descriptives.sps], [dnl
205 DATA LIST LIST NOTABLE /a b.
212 DESCRIPTIVES /VAR=a b /SAVE.
215 AT_CHECK([pspp -O format=csv descriptives.sps], [0], [dnl
216 Table: Mapping of variables to corresponding Z-scores.
221 Table: Valid cases = 3; cases with missing value(s) = 0.
222 Variable,N,Mean,Std Dev,Minimum,Maximum
223 a,3,2.00,1.00,1.00,3.00
224 b,3,60.00,10.00,50.00,70.00
228 1.00,50.00,-1.00,-1.00
234 AT_SETUP([DESCRIPTIVES -- Z scores with SPLIT FILE])
235 AT_DATA([descriptives.sps], [dnl
236 DATA LIST LIST NOTABLE /group a b.
248 DESCRIPTIVES /VAR=a b /SAVE.
251 AT_CHECK([pspp -O format=csv descriptives.sps], [0], [dnl
252 Table: Mapping of variables to corresponding Z-scores.
260 Table: Valid cases = 3; cases with missing value(s) = 0.
261 Variable,N,Mean,Std Dev,Minimum,Maximum
262 a,3,2.00,1.00,1.00,3.00
263 b,3,60.00,10.00,50.00,70.00
268 Table: Valid cases = 4; cases with missing value(s) = 0.
269 Variable,N,Mean,Std Dev,Minimum,Maximum
270 a,4,300.00,182.57,100.00,500.00
271 b,4,8000.00,1825.74,6000.00,10000.00
278 1.00,1.00,50.00,-1.00,-1.00
279 1.00,2.00,60.00,.00,.00
280 1.00,3.00,70.00,1.00,1.00
287 2.00,100.00,6000.00,-1.10,-1.10
288 2.00,200.00,7000.00,-.55,-.55
289 2.00,400.00,9000.00,.55,.55
290 2.00,500.00,10000.00,1.10,1.10
294 dnl Ideally DESCRIPTIVES would not make temporary transformations permanent
295 dnl as it does now (bug #38786), so these results are imperfect. However,
296 dnl this test does verify that DESCRIPTIVES does not crash in this situation
297 dnl (as it once did).
298 AT_SETUP([DESCRIPTIVES -- Z scores bug with TEMPORARY])
299 AT_DATA([descriptives.sps], [dnl
300 DATA LIST LIST NOTABLE /id abc.
314 DESCRIPTIVES /VAR=abc/SAVE.
317 AT_CHECK([pspp -O format=csv descriptives.sps], [0], [dnl
318 descriptives.sps:15: warning: DESCRIPTIVES: DESCRIPTIVES with Z scores ignores TEMPORARY. Temporary transformations will be made permanent.
320 Table: Mapping of variables to corresponding Z-scores.
324 Table: Valid cases = 6; cases with missing value(s) = 0.
325 Variable,N,Mean,Std Dev,Minimum,Maximum
326 abc,6,3.00,.84,2.00,4.00
339 dnl This test was supplied by Mindaugus as part of the report for bug #42012.
340 AT_SETUP([DESCRIPTIVES -- Z scores with FILTER])
341 AT_DATA([descriptives.sps], [dnl
342 DATA LIST LIST/filter1 filter2 x.
356 DESCRIPTIVES /VARIABLES=X /SAVE.
360 DESCRIPTIVES /VARIABLES=X /SAVE.
363 SORT CASES BY filter1.
364 SPLIT FILE BY filter1.
365 DESCRIPTIVES /VARIABLES=X /SAVE.
368 SPLIT FILE BY filter1.
369 DESCRIPTIVES /VARIABLES=X /SAVE.
372 SORT CASES BY filter1 filter2.
373 SPLIT FILE BY filter1 filter2.
374 DESCRIPTIVES /VARIABLES=X /SAVE.
380 AT_CHECK([pspp -o pspp.csv descriptives.sps])
381 AT_CHECK([sed -n '/Table: Data List/,$p' < pspp.csv], [0], [dnl
383 filter1,filter2,x,Zx,ZSC001,ZSC002,ZSC003,ZSC004
384 .00,.00,300.00,1.94,. ,1.00,. ,. @&t@
385 .00,1.00,200.00,1.07,. ,.00,.71,.71
386 .00,1.00,100.00,.20,. ,-1.00,-.71,-.71
387 1.00,.00,5.00,-.62,1.26,1.26,. ,.71
388 1.00,.00,4.00,-.63,.63,.63,. ,-.71
389 1.00,1.00,3.00,-.64,.00,.00,1.00,1.00
390 1.00,1.00,2.00,-.65,-.63,-.63,.00,.00
391 1.00,1.00,1.00,-.66,-1.26,-1.26,-1.00,-1.00