Work on weighting.
[pspp] / tests / language / stats / ctables.at
index 46147b42c064400a5690434cc87dfc39370e1709..f71a3c572eb5dfb77cab2d24694878b7f3074fb7 100644 (file)
@@ -1,5 +1,46 @@
 AT_BANNER([CTABLES])
 
+dnl TODO:
+dnl
+dnl - Parsing (positive and negative)
+dnl - String variables and values
+dnl - Date/time variables and values
+dnl - Multiple-response sets.
+dnl   * MRSETS subcommand.
+dnl - SPLIT FILE with SEPARATE splits
+dnl - Definition of columns/rows when labels are rotated from one axis to another.
+dnl - Preprocessing to distinguish categorical from scale.
+dnl - )CILEVEL in summary specifications
+dnl - Summary functions:
+dnl   * Unimplemented ones.
+dnl   * U-prefix for unweighted summaries.
+dnl   * .LCL and .UCL suffixes.
+dnl   * .SE suffixes.
+dnl   * Separate summary functions for totals and subtotals.
+dnl - Special formats for summary functions: NEGPAREN, NEQUAL, PAREN, PCTPAREN.
+dnl - Testing details of missing value handling in summaries.
+dnl - test CLABELS ROWLABELS=LAYER.
+dnl - CATEGORIES:
+dnl   * Special case for explicit category specifications and multiple dichotomy sets
+dnl   * THRU
+dnl   * OTHERNM
+dnl   * String values
+dnl   * Date values
+dnl   * Data-dependent sorting.
+dnl - EMPTY=INCLUDE.
+dnl - TITLES: )DATE, )TIME, )TABLE.
+dnl - SIGTEST
+dnl - COMPARETEST
+dnl - FORMAT:
+dnl   * MINCOLWIDTH, MAXCOLWIDTH, UNITS.
+dnl   * EMPTY.
+dnl   * MISSING.
+dnl - VLABELS.
+dnl - SMISSING.
+dnl - Test WEIGHT and adjustment weights.
+dnl - PCOMPUTE and PPROPERTIES.
+dnl - HIDESMALLCOUNTS.
+
 # AT_SETUP([CTABLES parsing])
 # AT_DATA([ctables.sps],
 # [[DATA LIST LIST NOTABLE /x y z.
@@ -155,80 +196,98 @@ AT_SETUP([CTABLES simple nesting])
 AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .])
 AT_DATA([ctables.sps],
 [[GET 'nhtsa.sav'.
-CTABLES /TABLE (qn105ba + qn105bb + qn105bc + qn105bd) > qns3a [TABLEPCT PCT8.0]
-  /CATEGORIES VARIABLES=qns3a TOTAL=NO.
+CTABLES /TABLE (qn105ba + qn105bb + qn105bc + qn105bd) > qns3a [COUNT, TABLEPCT PCT8.0]
+  /CATEGORIES VARIABLES=qns3a TOTAL=YES.
 CTABLES /TABLE qns3a > (qn105ba + qn105bb + qn105bc + qn105bd) [TABLEPCT PCT8.0]
-  /CATEGORIES VARIABLES=qns3a TOTAL=NO
+  /CATEGORIES VARIABLES=qns3a TOTAL=YES
   /CLABELS ROW=OPPOSITE.
 ]])
-dnl XXX With TOTAL=YES above, the totals get included in the denominator so that
-dnl the percentages are about half of the correct values.
 AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
                                   Custom Tables
-╭───────────────────────────────────────────────────────────────────────┬──────╮
-│                                                                       │ Table│
-│                                                                       │   %  │
-├───────────────────────────────────────────────────────────────────────┼──────┤
-│105b. How likely is it that drivers who     Almost      S3a.     Male  │    4%│
-│have had too much to drink to drive safely  certain     GENDER:  Female│    6%│
-│will A. Get stopped by the police?         ╶───────────────────────────┼──────┤
-│                                            Very likely S3a.     Male  │   10%│
-│                                                        GENDER:  Female│   12%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │   17%│
-│                                            likely      GENDER:  Female│   23%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │    9%│
-│                                            unlikely    GENDER:  Female│   10%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Very        S3a.     Male  │    5%│
-│                                            unlikely    GENDER:  Female│    4%│
-├───────────────────────────────────────────────────────────────────────┼──────┤
-│105b. How likely is it that drivers who     Almost      S3a.     Male  │    6%│
-│have had too much to drink to drive safely  certain     GENDER:  Female│   10%│
-│will B. Have an accident?                  ╶───────────────────────────┼──────┤
-│                                            Very likely S3a.     Male  │   16%│
-│                                                        GENDER:  Female│   25%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │   17%│
-│                                            likely      GENDER:  Female│   18%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │    4%│
-│                                            unlikely    GENDER:  Female│    2%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Very        S3a.     Male  │    1%│
-│                                            unlikely    GENDER:  Female│    1%│
-├───────────────────────────────────────────────────────────────────────┼──────┤
-│105b. How likely is it that drivers who     Almost      S3a.     Male  │    8%│
-│have had too much to drink to drive safely  certain     GENDER:  Female│    9%│
-│will C. Be convicted for drunk driving?    ╶───────────────────────────┼──────┤
-│                                            Very likely S3a.     Male  │   14%│
-│                                                        GENDER:  Female│   15%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │   12%│
-│                                            likely      GENDER:  Female│   18%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │    7%│
-│                                            unlikely    GENDER:  Female│    8%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Very        S3a.     Male  │    4%│
-│                                            unlikely    GENDER:  Female│    5%│
-├───────────────────────────────────────────────────────────────────────┼──────┤
-│105b. How likely is it that drivers who     Almost      S3a.     Male  │    7%│
-│have had too much to drink to drive safely  certain     GENDER:  Female│    9%│
-│will D. Be arrested for drunk driving?     ╶───────────────────────────┼──────┤
-│                                            Very likely S3a.     Male  │   12%│
-│                                                        GENDER:  Female│   15%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │   14%│
-│                                            likely      GENDER:  Female│   19%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │    8%│
-│                                            unlikely    GENDER:  Female│    8%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Very        S3a.     Male  │    4%│
-│                                            unlikely    GENDER:  Female│    4%│
-╰───────────────────────────────────────────────────────────────────────┴──────╯
+╭─────────────────────────────────────────────────────────────────┬─────┬──────╮
+│                                                                 │     │ Table│
+│                                                                 │Count│   %  │
+├─────────────────────────────────────────────────────────────────┼─────┼──────┤
+│105b. How likely is it that drivers    Almost     S3a.     Male  │  297│    4%│
+│who have had too much to drink to      certain    GENDER:  Female│  403│    6%│
+│drive safely will A. Get stopped by                        Total │  700│   10%│
+│the police?                           ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  660│   10%│
+│                                       likely     GENDER:  Female│  842│   12%│
+│                                                           Total │ 1502│   22%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │ 1174│   17%│
+│                                       likely     GENDER:  Female│ 1589│   23%│
+│                                                           Total │ 2763│   40%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  640│    9%│
+│                                       unlikely   GENDER:  Female│  667│   10%│
+│                                                           Total │ 1307│   19%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  311│    5%│
+│                                       unlikely   GENDER:  Female│  298│    4%│
+│                                                           Total │  609│    9%│
+├─────────────────────────────────────────────────────────────────┼─────┼──────┤
+│105b. How likely is it that drivers    Almost     S3a.     Male  │  429│    6%│
+│who have had too much to drink to      certain    GENDER:  Female│  671│   10%│
+│drive safely will B. Have an accident?                     Total │ 1100│   16%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │ 1104│   16%│
+│                                       likely     GENDER:  Female│ 1715│   25%│
+│                                                           Total │ 2819│   41%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │ 1203│   17%│
+│                                       likely     GENDER:  Female│ 1214│   18%│
+│                                                           Total │ 2417│   35%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  262│    4%│
+│                                       unlikely   GENDER:  Female│  168│    2%│
+│                                                           Total │  430│    6%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │   81│    1%│
+│                                       unlikely   GENDER:  Female│   59│    1%│
+│                                                           Total │  140│    2%│
+├─────────────────────────────────────────────────────────────────┼─────┼──────┤
+│105b. How likely is it that drivers    Almost     S3a.     Male  │  539│    8%│
+│who have had too much to drink to      certain    GENDER:  Female│  610│    9%│
+│drive safely will C. Be convicted for                      Total │ 1149│   17%│
+│drunk driving?                        ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  988│   14%│
+│                                       likely     GENDER:  Female│ 1049│   15%│
+│                                                           Total │ 2037│   30%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  822│   12%│
+│                                       likely     GENDER:  Female│ 1210│   18%│
+│                                                           Total │ 2032│   30%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  446│    7%│
+│                                       unlikely   GENDER:  Female│  548│    8%│
+│                                                           Total │  994│   15%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  268│    4%│
+│                                       unlikely   GENDER:  Female│  354│    5%│
+│                                                           Total │  622│    9%│
+├─────────────────────────────────────────────────────────────────┼─────┼──────┤
+│105b. How likely is it that drivers    Almost     S3a.     Male  │  498│    7%│
+│who have had too much to drink to      certain    GENDER:  Female│  603│    9%│
+│drive safely will D. Be arrested for                       Total │ 1101│   16%│
+│drunk driving?                        ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  805│   12%│
+│                                       likely     GENDER:  Female│ 1029│   15%│
+│                                                           Total │ 1834│   27%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  975│   14%│
+│                                       likely     GENDER:  Female│ 1332│   19%│
+│                                                           Total │ 2307│   34%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  535│    8%│
+│                                       unlikely   GENDER:  Female│  560│    8%│
+│                                                           Total │ 1095│   16%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  270│    4%│
+│                                       unlikely   GENDER:  Female│  279│    4%│
+│                                                           Total │  549│    8%│
+╰─────────────────────────────────────────────────────────────────┴─────┴──────╯
 
                                   Custom Tables
 ╭─────────────────────────────────┬────────┬──────┬─────────┬─────────┬────────╮
@@ -253,6 +312,14 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 │               drive safely will │        │      │         │         │        │
 │               A. Get stopped by │        │      │         │         │        │
 │               the police?       │        │      │         │         │        │
+│       ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
+│        Total  105b. How likely  │     10%│   22%│      40%│      19%│      9%│
+│               is it that drivers│        │      │         │         │        │
+│               who have had too  │        │      │         │         │        │
+│               much to drink to  │        │      │         │         │        │
+│               drive safely will │        │      │         │         │        │
+│               A. Get stopped by │        │      │         │         │        │
+│               the police?       │        │      │         │         │        │
 ├─────────────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
 │S3a.    Male   105b. How likely  │      6%│   16%│      17%│       4%│      1%│
 │GENDER:        is it that drivers│        │      │         │         │        │
@@ -269,6 +336,14 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 │               drive safely will │        │      │         │         │        │
 │               B. Have an        │        │      │         │         │        │
 │               accident?         │        │      │         │         │        │
+│       ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
+│        Total  105b. How likely  │     16%│   41%│      35%│       6%│      2%│
+│               is it that drivers│        │      │         │         │        │
+│               who have had too  │        │      │         │         │        │
+│               much to drink to  │        │      │         │         │        │
+│               drive safely will │        │      │         │         │        │
+│               B. Have an        │        │      │         │         │        │
+│               accident?         │        │      │         │         │        │
 ├─────────────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
 │S3a.    Male   105b. How likely  │      8%│   14%│      12%│       7%│      4%│
 │GENDER:        is it that drivers│        │      │         │         │        │
@@ -285,6 +360,14 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 │               drive safely will │        │      │         │         │        │
 │               C. Be convicted   │        │      │         │         │        │
 │               for drunk driving?│        │      │         │         │        │
+│       ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
+│        Total  105b. How likely  │     17%│   30%│      30%│      15%│      9%│
+│               is it that drivers│        │      │         │         │        │
+│               who have had too  │        │      │         │         │        │
+│               much to drink to  │        │      │         │         │        │
+│               drive safely will │        │      │         │         │        │
+│               C. Be convicted   │        │      │         │         │        │
+│               for drunk driving?│        │      │         │         │        │
 ├─────────────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
 │S3a.    Male   105b. How likely  │      7%│   12%│      14%│       8%│      4%│
 │GENDER:        is it that drivers│        │      │         │         │        │
@@ -301,6 +384,14 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 │               drive safely will │        │      │         │         │        │
 │               D. Be arrested for│        │      │         │         │        │
 │               drunk driving?    │        │      │         │         │        │
+│       ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
+│        Total  105b. How likely  │     16%│   27%│      34%│      16%│      8%│
+│               is it that drivers│        │      │         │         │        │
+│               who have had too  │        │      │         │         │        │
+│               much to drink to  │        │      │         │         │        │
+│               drive safely will │        │      │         │         │        │
+│               D. Be arrested for│        │      │         │         │        │
+│               drunk driving?    │        │      │         │         │        │
 ╰─────────────────────────────────┴────────┴──────┴─────────┴─────────┴────────╯
 ])
 AT_CLEANUP
@@ -479,7 +570,6 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 ])
 AT_CLEANUP
 
-
 AT_SETUP([CTABLES simple totals])
 AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .])
 AT_DATA([ctables.sps],
@@ -532,3 +622,82 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 ╰───────────────────────────────────────────────────────────────────┴────┴─────╯
 ])
 AT_CLEANUP
+
+AT_SETUP([CTABLES subtotals])
+AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .])
+AT_DATA([ctables.sps],
+[[GET 'nhtsa.sav'.
+CTABLES /TABLE=qn105ba BY qns1
+    /CATEGORIES VARIABLES=qns1 [1, 2, SUBTOTAL, 3, 4, 5, SUBTOTAL].
+CTABLES /TABLE=qn105ba [COLPCT] BY qns1
+    /CATEGORIES VARIABLES=qn105ba [1, 2, 3, SUBTOTAL, 4, 5, SUBTOTAL].
+CTABLES /TABLE=qn105ba BY qns1
+    /CATEGORIES VARIABLES=qn105ba [1, 2, 3, SUBTOTAL, 4, 5, SUBTOTAL]
+    /CATEGORIES VARIABLES=qns1 [1, 2, SUBTOTAL, 3, 4, 5, SUBTOTAL].
+]])
+AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [0], [dnl
+                                                      Custom Tables
+╭─────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────╮
+│                                                         │ S1. Including yourself, how many members of this household │
+│                                                         │                    are age 16 or older?                    │
+│                                                         ├───────┬───────┬─────────┬───────┬────────┬──────┬──────────┤
+│                                                         │   1   │   2   │ Subtotal│   3   │    4   │   5  │ Subtotal │
+│                                                         ├───────┼───────┼─────────┼───────┼────────┼──────┼──────────┤
+│                                                         │ Count │ Count │  Count  │ Count │  Count │ Count│   Count  │
+├─────────────────────────────────────────────────────────┼───────┼───────┼─────────┼───────┼────────┼──────┼──────────┤
+│105b. How likely is it that drivers who have  Almost     │    147│    246│      393│     62│      19│    11│        92│
+│had too much to drink to drive safely will A. certain    │       │       │         │       │        │      │          │
+│Get stopped by the police?                    Very likely│    384│    552│      936│    120│      51│    14│       185│
+│                                              Somewhat   │    590│   1249│     1839│    193│      72│    20│       285│
+│                                              likely     │       │       │         │       │        │      │          │
+│                                              Somewhat   │    278│    647│      925│     84│      32│     6│       122│
+│                                              unlikely   │       │       │         │       │        │      │          │
+│                                              Very       │    141│    290│      431│     41│      18│     4│        63│
+│                                              unlikely   │       │       │         │       │        │      │          │
+╰─────────────────────────────────────────────────────────┴───────┴───────┴─────────┴───────┴────────┴──────┴──────────╯
+
+                                                      Custom Tables
+╭────────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────╮
+│                                                            │     S1. Including yourself, how many members of this    │
+│                                                            │              household are age 16 or older?             │
+│                                                            ├─────────┬────────┬─────────┬────────┬─────────┬─────────┤
+│                                                            │    1    │    2   │    3    │    4   │    5    │6 or more│
+│                                                            ├─────────┼────────┼─────────┼────────┼─────────┼─────────┤
+│                                                            │ Column %│Column %│ Column %│Column %│ Column %│ Column %│
+├────────────────────────────────────────────────────────────┼─────────┼────────┼─────────┼────────┼─────────┼─────────┤
+│105b. How likely is it that drivers who have had Almost     │     9.5%│    8.2%│    12.4%│    9.9%│    20.0%│    23.8%│
+│too much to drink to drive safely will A. Get    certain    │         │        │         │        │         │         │
+│stopped by the police?                           Very likely│    24.9%│   18.5%│    24.0%│   26.6%│    25.5%│    33.3%│
+│                                                 Somewhat   │    38.3%│   41.9%│    38.6%│   37.5%│    36.4%│    23.8%│
+│                                                 likely     │         │        │         │        │         │         │
+│                                                 Subtotal   │    72.8%│   68.6%│    75.0%│   74.0%│    81.8%│    81.0%│
+│                                                 Somewhat   │    18.1%│   21.7%│    16.8%│   16.7%│    10.9%│     9.5%│
+│                                                 unlikely   │         │        │         │        │         │         │
+│                                                 Very       │     9.2%│    9.7%│     8.2%│    9.4%│     7.3%│     9.5%│
+│                                                 unlikely   │         │        │         │        │         │         │
+│                                                 Subtotal   │    27.2%│   31.4%│    25.0%│   26.0%│    18.2%│    19.0%│
+╰────────────────────────────────────────────────────────────┴─────────┴────────┴─────────┴────────┴─────────┴─────────╯
+
+                                                      Custom Tables
+╭─────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────╮
+│                                                         │ S1. Including yourself, how many members of this household │
+│                                                         │                    are age 16 or older?                    │
+│                                                         ├───────┬───────┬─────────┬───────┬────────┬──────┬──────────┤
+│                                                         │   1   │   2   │ Subtotal│   3   │    4   │   5  │ Subtotal │
+│                                                         ├───────┼───────┼─────────┼───────┼────────┼──────┼──────────┤
+│                                                         │ Count │ Count │  Count  │ Count │  Count │ Count│   Count  │
+├─────────────────────────────────────────────────────────┼───────┼───────┼─────────┼───────┼────────┼──────┼──────────┤
+│105b. How likely is it that drivers who have  Almost     │    147│    246│      393│     62│      19│    11│        92│
+│had too much to drink to drive safely will A. certain    │       │       │         │       │        │      │          │
+│Get stopped by the police?                    Very likely│    384│    552│      936│    120│      51│    14│       185│
+│                                              Somewhat   │    590│   1249│     1839│    193│      72│    20│       285│
+│                                              likely     │       │       │         │       │        │      │          │
+│                                              Subtotal   │   1121│   2047│     3168│    375│     142│    45│       562│
+│                                              Somewhat   │    278│    647│      925│     84│      32│     6│       122│
+│                                              unlikely   │       │       │         │       │        │      │          │
+│                                              Very       │    141│    290│      431│     41│      18│     4│        63│
+│                                              unlikely   │       │       │         │       │        │      │          │
+│                                              Subtotal   │    419│    937│     1356│    125│      50│    10│       185│
+╰─────────────────────────────────────────────────────────┴───────┴───────┴─────────┴───────┴────────┴──────┴──────────╯
+])
+AT_CLEANUP