work on missing value handling
[pspp] / tests / language / stats / ctables.at
index 9d58441d881d39761c6451b8b998bf44a0299d0d..1b7021438e98fba13e2e23acdb1c58cceb220183 100644 (file)
@@ -12,6 +12,7 @@ dnl   * Unimplemented ones.
 dnl   * U-prefix for unweighted summaries.
 dnl   * .LCL and .UCL suffixes.
 dnl   * .SE suffixes.
+dnl   * Why are summary functions for scale variables also available for totals and subtotals?
 dnl - CATEGORIES:
 dnl   * String values
 dnl   * Date values
@@ -131,17 +132,19 @@ AT_SETUP([CTABLES one scale variable])
 AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .])
 AT_DATA([ctables.sps],
 [[GET 'nhtsa.sav'.
-CTABLES /TABLE qnd1[COUNT, MEAN, STDDEV, MINIMUM, MAXIMUM].
+CTABLES /TABLE qnd1[COUNT, VALIDN, TOTALN, MEAN, STDDEV, MINIMUM, MAXIMUM].
 CTABLES /TABLE BY qnd1.
 CTABLES /TABLE BY BY qnd1.
 ]])
 AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
-                            Custom Tables
-╭──────────────────────────┬─────┬────┬─────────────┬───────┬───────╮
-│                          │Count│Mean│Std Deviation│Minimum│Maximum│
-├──────────────────────────┼─────┼────┼─────────────┼───────┼───────┤
-│D1. AGE: What is your age?│ 6930│  48│           19│     16│     86│
-╰──────────────────────────┴─────┴────┴─────────────┴───────┴───────╯
+                                  Custom Tables
+╭──────────────────────┬─────┬───────┬───────┬────┬────────────┬───────┬───────╮
+│                      │     │       │       │    │     Std    │       │       │
+│                      │Count│Valid N│Total N│Mean│  Deviation │Minimum│Maximum│
+├──────────────────────┼─────┼───────┼───────┼────┼────────────┼───────┼───────┤
+│D1. AGE: What is your │ 6999│   6930│   6999│  48│          19│     16│     86│
+│age?                  │     │       │       │    │            │       │       │
+╰──────────────────────┴─────┴───────┴───────┴────┴────────────┴───────┴───────╯
 
         Custom Tables
 ╭──────────────────────────╮
@@ -708,7 +711,8 @@ AT_DATA([ctables.sps],
 [[GET 'nhtsa.sav'.
 CTABLES /TABLE=qn17
     /CATEGORIES VARIABLES=qn17 TOTAL=YES LABEL='Number responding'.
-CTABLES /TABLE=region > qn18 [MEAN, COUNT]
+DESCRIPTIVES qn18/STATISTICS=MEAN.
+CTABLES /TABLE=region > qn18 [MEAN, COUNT, VALIDN, TOTALN]
     /CATEGORIES VARIABLES=region TOTAL=YES LABEL='All regions'.
 ]])
 AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
@@ -728,30 +732,41 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 │                                                      Number responding │ 4221│
 ╰────────────────────────────────────────────────────────────────────────┴─────╯
 
+                             Descriptive Statistics
+╭────────────────────────────────────────────────────────────────────┬────┬────╮
+│                                                                    │  N │Mean│
+├────────────────────────────────────────────────────────────────────┼────┼────┤
+│18. When you drink ANSWERFROM(QN17R1), about how many               │4218│4.62│
+│ANSWERFROM(QN17R2) do you usually drink per sitting?                │    │    │
+│Valid N (listwise)                                                  │6999│    │
+│Missing N (listwise)                                                │2781│    │
+╰────────────────────────────────────────────────────────────────────┴────┴────╯
+
                                   Custom Tables
-╭───────────────────────────────────────────────────────────────────┬────┬─────╮
-│                                                                   │Mean│Count│
-├───────────────────────────────────────────────────────────────────┼────┼─────┤
-│Region NE       18. When you drink ANSWERFROM(QN17R1), about how   │4.36│  949│
-│                many ANSWERFROM(QN17R2) do you usually drink per   │    │     │
-│                sitting?                                           │    │     │
-│      ╶────────────────────────────────────────────────────────────┼────┼─────┤
-│       MW       18. When you drink ANSWERFROM(QN17R1), about how   │4.67│ 1027│
-│                many ANSWERFROM(QN17R2) do you usually drink per   │    │     │
-│                sitting?                                           │    │     │
-│      ╶────────────────────────────────────────────────────────────┼────┼─────┤
-│       S        18. When you drink ANSWERFROM(QN17R1), about how   │4.71│ 1287│
-│                many ANSWERFROM(QN17R2) do you usually drink per   │    │     │
-│                sitting?                                           │    │     │
-│      ╶────────────────────────────────────────────────────────────┼────┼─────┤
-│       W        18. When you drink ANSWERFROM(QN17R1), about how   │4.69│  955│
-│                many ANSWERFROM(QN17R2) do you usually drink per   │    │     │
-│                sitting?                                           │    │     │
-│      ╶────────────────────────────────────────────────────────────┼────┼─────┤
-│       All      18. When you drink ANSWERFROM(QN17R1), about how   │4.62│ 4218│
-│       regions  many ANSWERFROM(QN17R2) do you usually drink per   │    │     │
-│                sitting?                                           │    │     │
-╰───────────────────────────────────────────────────────────────────┴────┴─────╯
+╭──────────────────────────────────────────────────────┬────┬─────┬──────┬─────╮
+│                                                      │    │     │ Valid│Total│
+│                                                      │Mean│Count│   N  │  N  │
+├──────────────────────────────────────────────────────┼────┼─────┼──────┼─────┤
+│Region NE       18. When you drink ANSWERFROM(QN17R1),│4.36│ 1409│   949│ 1409│
+│                about how many ANSWERFROM(QN17R2) do  │    │     │      │     │
+│                you usually drink per sitting?        │    │     │      │     │
+│      ╶───────────────────────────────────────────────┼────┼─────┼──────┼─────┤
+│       MW       18. When you drink ANSWERFROM(QN17R1),│4.67│ 1654│  1027│ 1654│
+│                about how many ANSWERFROM(QN17R2) do  │    │     │      │     │
+│                you usually drink per sitting?        │    │     │      │     │
+│      ╶───────────────────────────────────────────────┼────┼─────┼──────┼─────┤
+│       S        18. When you drink ANSWERFROM(QN17R1),│4.71│ 2390│  1287│ 2390│
+│                about how many ANSWERFROM(QN17R2) do  │    │     │      │     │
+│                you usually drink per sitting?        │    │     │      │     │
+│      ╶───────────────────────────────────────────────┼────┼─────┼──────┼─────┤
+│       W        18. When you drink ANSWERFROM(QN17R1),│4.69│ 1546│   955│ 1546│
+│                about how many ANSWERFROM(QN17R2) do  │    │     │      │     │
+│                you usually drink per sitting?        │    │     │      │     │
+│      ╶───────────────────────────────────────────────┼────┼─────┼──────┼─────┤
+│       All      18. When you drink ANSWERFROM(QN17R1),│4.62│ 6999│  4218│ 6999│
+│       regions  about how many ANSWERFROM(QN17R2) do  │    │     │      │     │
+│                you usually drink per sitting?        │    │     │      │     │
+╰──────────────────────────────────────────────────────┴────┴─────┴──────┴─────╯
 ])
 AT_CLEANUP
 
@@ -922,4 +937,58 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [0], [dnl
 │                        Female│         943│
 ╰──────────────────────────────┴────────────╯
 ])
+AT_CLEANUP
+
+AT_SETUP([CTABLES missing values])
+AT_DATA([ctables.sps],
+[[DATA LIST LIST NOTABLE/x y.
+BEGIN DATA.
+1 1
+1 2
+1 3
+1 4
+1 5
+1 .
+2 1
+2 2
+2 3
+2 4
+2 5
+2 .
+3 1
+3 2
+3 3
+3 4
+3 5
+3 .
+4 1
+4 2
+4 3
+4 4
+4 5
+4 .
+5 1
+5 2
+5 3
+5 4
+5 5
+5 .
+. 1
+. 2
+. 3
+. 4
+. 5
+END DATA.
+MISSING VALUES x (1, 2) y (2, 3).
+VARIABLE LEVEL ALL (NOMINAL).
+
+CTABLES /TABLE x[COUNT,TOTALS[COUNT, VALIDN, TOTALN]]
+    /CATEGORIES VARIABLES=ALL TOTAL=YES.
+CTABLES /TABLE x[COUNT,TOTALS[COUNT, VALIDN, TOTALN]]
+    /CATEGORIES VARIABLES=ALL TOTAL=YES MISSING=INCLUDE.
+CTABLES /TABLE x BY y.
+CTABLES /TABLE x BY y /CATEGORIES VARIABLES=ALL MISSING=INCLUDE.
+CTABLES /TABLE y BY x /CATEGORIES VARIABLES=ALL MISSING=INCLUDE.
+]])
+AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [0], [])
 AT_CLEANUP
\ No newline at end of file