AT_BANNER([CTABLES]) dnl Known bugs: dnl TOTAL interaction with PCOMPUTE, e.g. the following dnl CTABLES dnl /PCOMPUTE &all_drivers=EXPR([1 THRU 2] + [3 THRU 4]) dnl /PPROPERTIES &all_drivers LABEL='All Drivers' dnl /PCOMPUTE &pct_not_drivers=EXPR([5] / ([1 THRU 2] + [3 THRU 4] + [5]) * 100) dnl /PPROPERTIES &pct_not_drivers LABEL='% Not Drivers' FORMAT=COUNT PCT40.1 dnl /TABLE=qn1 BY qns3a dnl /CATEGORIES VARIABLES=qns3a TOTAL=YES dnl /CATEGORIES VARIABLES=qn1 [1 THRU 2, SUBTOTAL='Frequent Drivers', dnl 3 THRU 4, SUBTOTAL='Infrequent Drivers', dnl &all_drivers, 5, &pct_not_drivers, dnl MISSING, SUBTOTAL='Not Drivers or Missing']. dnl yields gaps in the Total column: dnl ╭─────────────────────────────────────────────────────────────────────────┬──────────────────╮ dnl │ │ S3a. GENDER: │ dnl │ ├─────┬──────┬─────┤ dnl │ │ Male│Female│Total│ dnl │ ├─────┼──────┼─────┤ dnl │ │Count│ Count│Count│ dnl ├─────────────────────────────────────────────────────────────────────────┼─────┼──────┼─────┤ dnl │ 1. How often do you usually drive a car or other Every day │ 2305│ 2362│ 4667│ dnl │motor vehicle? Several days a week │ 440│ 834│ 1274│ dnl │ Frequent Drivers │ 2745│ 3196│ │ dnl │ Once a week or less │ 125│ 236│ 361│ dnl │ Only certain times a │ 58│ 72│ 130│ dnl │ year │ │ │ │ dnl │ Infrequent Drivers │ 183│ 308│ │ dnl │ All Drivers │ 2928│ 3504│ │ dnl │ Never │ 192│ 348│ 540│ dnl │ % Not Drivers │ 6.2%│ 9.0%│ │ dnl │ Don't know │ 3│ 5│ 8│ dnl │ Refused │ 9│ 10│ 19│ dnl │ Not Drivers or │ 204│ 363│ │ dnl │ Missing │ │ │ │ dnl ╰─────────────────────────────────────────────────────────────────────────┴─────┴──────┴─────╯ dnl Features not yet implemented: dnl - Multiple response sets dnl - MRSETS subcommand. dnl - CATEGORIES: Special case for explicit category specifications and multiple dichotomy sets. dnl - SIGTEST dnl - COMPARETEST dnl - Summary functions: dnl * .LCL and .UCL suffixes. dnl * .SE suffixes. dnl - CATEGORIES: dnl * Data-dependent sorting. AT_SETUP([CTABLES parsing]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /FORMAT MINCOLWIDTH=10 MAXCOLWIDTH=20 UNITS=POINTS EMPTY=ZERO MISSING="x" /FORMAT MINCOLWIDTH=DEFAULT MAXCOLWIDTH=DEFAULT UNITS=INCHES EMPTY=BLANK MISSING="." /FORMAT UNITS=CM EMPTY="(-)" /VLABELS VARIABLES=qn1 DISPLAY=DEFAULT /VLABELS VARIABLES=qn17 DISPLAY=NAME /VLABELS VARIABLES=qns3a DISPLAY=LABEL /VLABELS VARIABLES=qnd1 DISPLAY=BOTH /VLABELS VARIABLES=qn20 DISPLAY=NONE /MRSETS COUNTDUPLICATES=NO /MRSETS COUNTDUPLICATES=YES /SMISSING VARIABLE /SMISSING LISTWISE /WEIGHT VARIABLE=qns3a /HIDESMALLCOUNTS /HIDESMALLCOUNTS COUNT=10 /TABLE qnsa1 /SLABELS POSITION=COLUMN VISIBLE=YES /SLABELS VISIBLE=NO POSITION=ROW /SLABELS POSITION=LAYER /CLABELS AUTO /CLABELS ROWLABELS=OPPOSITE /CRITERIA CILEVEL=50 /CATEGORIES VARIABLES=qn1 qn17 ORDER=A KEY=VALUE MISSING=INCLUDE TOTAL=YES LABEL="xyzzy" POSITION=BEFORE EMPTY=INCLUDE. CTABLES /TABLE qnsa1 /CLABELS ROWLABELS=LAYER. CTABLES /TABLE qnsa1 /CLABELS COLLABELS=OPPOSITE. CTABLES /TABLE qnsa1 /CLABELS COLLABELS=LAYER. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables Count ╭───────────────────┬────┬────╮ │ │ RDD│CELL│ ├───────────────────┼────┼────┤ │Sa1. SAMPLE SOURCE:│5392│1607│ ╰───────────────────┴────┴────╯ Custom Tables RDD ╭───────────────────┬─────╮ │ │Count│ ├───────────────────┼─────┤ │Sa1. SAMPLE SOURCE:│ 5392│ ╰───────────────────┴─────╯ Custom Tables ╭────────────────────────┬─────╮ │ │Count│ ├────────────────────────┼─────┤ │Sa1. SAMPLE SOURCE: RDD │ 5392│ │ CELL│ 1607│ ╰────────────────────────┴─────╯ Custom Tables ╭────────────────────────┬─────╮ │ │Count│ ├────────────────────────┼─────┤ │Sa1. SAMPLE SOURCE: RDD │ 5392│ │ CELL│ 1607│ ╰────────────────────────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES parsing - negative]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES. CTABLES /FORMAT MINCOLWIDTH='foo'. CTABLES /TABLE qn1 [**]. CTABLES /TABLE qn1 [NOTAFUNCTION]. CTABLES /TABLE (qn1. CTABLES /TABLE **. CTABLES /TABLE NOTAVAR. STRING string(A8). CTABLES /TABLE string[S]. CTABLES /TABLE qn1 [PTILE 101]. CTABLES /TABLE qn1 [MEAN F0.1]. CTABLES /TABLE qn1 [MEAN NEGPAREN1.2]. CTABLES /TABLE qn1 [MEAN NEGPAREN3.4]. CTABLES /TABLE qn1 [MEAN TOTALS]. CTABLES /TABLE qn1 [MEAN TOTALS[STDDEV]%]. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [SUBTOTAL=x]. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [LO **]. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [LO THRU x]. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [1 THRU **]. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 ['x' THRU **]. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&**]. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&x]. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 KEY=PTILE(qn1, 101). CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 KEY=MEAN(qn1. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 KEY=MEAN. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 MISSING=**. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 TOTAL=**. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 LABEL=**. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 POSITION=**. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 EMPTY=**. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 **. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [1,2,3] **. CTABLES /PCOMPUTE &k=EXPR(SUBTOTAL[0]). CTABLES /PCOMPUTE &k=EXPR(SUBTOTAL[1**]). CTABLES /PCOMPUTE &k=EXPR([LO **]). CTABLES /PCOMPUTE &k=EXPR([LO THRU **]). CTABLES /PCOMPUTE &k=EXPR([1 THRU **]). CTABLES /PCOMPUTE &k=EXPR([1**]). CTABLES /PCOMPUTE &k=EXPR((1x)). CTABLES /PCOMPUTE **k. CTABLES /PCOMPUTE &1. CTABLES /PCOMPUTE &k**. CTABLES /PCOMPUTE &k=**. CTABLES /PCOMPUTE &k=EXPR**. CTABLES /PCOMPUTE &k=EXPR(1x). CTABLES /PCOMPUTE &k=EXPR(1) /PCOMPUTE &k=EXPR(2). CTABLES /PCOMPUTE &k=EXPR(1) /PPROPERTIES &k FORMAT=NOTAFUNCTION. CTABLES /PCOMPUTE &k=EXPR(1) /PPROPERTIES &k FORMAT=PTILE **. CTABLES /PCOMPUTE &k=EXPR(1) /PPROPERTIES &k LABEL=**. CTABLES /PCOMPUTE &k=EXPR(1) /PPROPERTIES &k HIDESOURCECATS=**. CTABLES /PCOMPUTE &k=EXPR(1) /PPROPERTIES &k **. CTABLES /FORMAT EMPTY=**. CTABLES /FORMAT MISSING=**. CTABLES /FORMAT **. CTABLES /FORMAT MINCOLWIDTH=20 MAXCOLWIDTH=10/. CTABLES /VLABELS **. CTABLES /VLABELS VARIABLES=NOTAVAR. CTABLES /VLABELS VARIABLES=qn1 **. CTABLES /VLABELS VARIABLES=qn1 DISPLAY=**. CTABLES /MRSETS **. CTABLES /MRSETS COUNTDUPLICATES=**. CTABLES /SMISSING **. CTABLES /WEIGHT **. CTABLES /WEIGHT VARIABLE=NOTAVAR. CTABLES /HIDESMALLCOUNTS COUNT=1. CTABLES /QUUX. CTABLES /HIDESMALLCOUNTS COUNT=2. CTABLES /TABLE qn1**. CTABLES /TABLE qn1 /SLABELS POSITION=**. CTABLES /TABLE qn1 /SLABELS VISIBLE=**. CTABLES /TABLE qn1 /SLABELS **. CTABLES /TABLE qn1 /CLABELS ROWLABELS=**. CTABLES /TABLE qn1 /CLABELS COLLABELS=**. CTABLES /TABLE qn1 /CLABELS **. CTABLES /TABLE qn1 /CRITERIA **. CTABLES /TABLE qn1 /CRITERIA CILEVEL=101. CTABLES /TABLE qn1 /TITLES **. CTABLES /TABLE qn1 /SIGTEST TYPE=**. CTABLES /TABLE qn1 /SIGTEST ALPHA=**. CTABLES /TABLE qn1 /SIGTEST INCLUDEMRSETS=**. CTABLES /TABLE qn1 /SIGTEST CATEGORIES=**. CTABLES /TABLE qn1 /SIGTEST **. CTABLES /TABLE qn1 /COMPARETEST TYPE=**. CTABLES /TABLE qn1 /COMPARETEST ALPHA=**. CTABLES /TABLE qn1 /COMPARETEST ALPHA=0,5. CTABLES /TABLE qn1 /COMPARETEST ADJUST=**. CTABLES /TABLE qn1 /COMPARETEST INCLUDEMRSETS=**. CTABLES /TABLE qn1 /COMPARETEST MEANSVARIANCE=**. CTABLES /TABLE qn1 /COMPARETEST CATEGORIES=**. CTABLES /TABLE qn1 /COMPARETEST MERGE=**. CTABLES /TABLE qn1 /COMPARETEST STYLE=**. CTABLES /TABLE qn1 /COMPARETEST SHOWSIG=**. CTABLES /TABLE qn1 /COMPARETEST **. CTABLES /TABLE qn1 /FORMAT. CTABLES /TABLE qn1 /CLABELS ROWLABELS=OPPOSITE /CLABELS COLLABELS=OPPOSITE. CTABLES /TABLE qn20 > qnd1. CTABLES /TABLE qn1 [ROWPCT] > qnsa1. NUMERIC datetime (DATETIME17.0). CTABLES /TABLE qn1 /CATEGORIES VARIABLES=datetime ['123']. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [1], [[ctables.sps:2.8: error: CTABLES: Syntax error expecting `/'. 2 | CTABLES. | ^ ctables.sps:3.29-3.33: error: CTABLES: Syntax error expecting non-negative number for MINCOLWIDTH. 3 | CTABLES /FORMAT MINCOLWIDTH='foo'. | ^~~~~ ctables.sps:4.21-4.22: error: CTABLES: Syntax error expecting identifier. 4 | CTABLES /TABLE qn1 [**]. | ^~ ctables.sps:5.21-5.32: error: CTABLES: Syntax error expecting summary function name. 5 | CTABLES /TABLE qn1 [NOTAFUNCTION]. | ^~~~~~~~~~~~ ctables.sps:6.20: error: CTABLES: Syntax error expecting `@:}@'. 6 | CTABLES /TABLE @{:@qn1. | ^ ctables.sps:7.16-7.17: error: CTABLES: Syntax error expecting identifier. 7 | CTABLES /TABLE **. | ^~ ctables.sps:8.16-8.22: error: CTABLES: NOTAVAR is not a variable name. 8 | CTABLES /TABLE NOTAVAR. | ^~~~~~~ ctables.sps:10.16-10.24: error: CTABLES: Cannot use string variable string as a scale variable. 10 | CTABLES /TABLE string[S]. | ^~~~~~~~~ ctables.sps:11.27-11.29: error: CTABLES: Syntax error expecting number between 0 and 100 for PTILE. 11 | CTABLES /TABLE qn1 [PTILE 101]. | ^~~ ctables.sps:12.26-12.29: error: CTABLES: Output format F0.1 specifies width 0, but F requires a width between 1 and 40. 12 | CTABLES /TABLE qn1 [MEAN F0.1]. | ^~~~ ctables.sps:13.26-13.36: error: CTABLES: Output format NEGPAREN requires width 2 or greater. 13 | CTABLES /TABLE qn1 [MEAN NEGPAREN1.2]. | ^~~~~~~~~~~ ctables.sps:14.26-14.36: error: CTABLES: Output format NEGPAREN requires width greater than decimals. 14 | CTABLES /TABLE qn1 [MEAN NEGPAREN3.4]. | ^~~~~~~~~~~ ctables.sps:15.21-15.24: error: CTABLES: Summary function MEAN applies only to scale variables. 15 | CTABLES /TABLE qn1 [MEAN TOTALS]. | ^~~~ ctables.sps:15.16-15.18: note: CTABLES: 'QN1' is not a scale variable. 15 | CTABLES /TABLE qn1 [MEAN TOTALS]. | ^~~ ctables.sps:15.32: error: CTABLES: Syntax error expecting `@<:@'. 15 | CTABLES /TABLE qn1 [MEAN TOTALS]. | ^ ctables.sps:16.21-16.24: error: CTABLES: Summary function MEAN applies only to scale variables. 16 | CTABLES /TABLE qn1 [MEAN TOTALS[STDDEV]%]. | ^~~~ ctables.sps:16.16-16.18: note: CTABLES: 'QN1' is not a scale variable. 16 | CTABLES /TABLE qn1 [MEAN TOTALS[STDDEV]%]. | ^~~ ctables.sps:16.40: error: CTABLES: Syntax error expecting `@:>@'. 16 | CTABLES /TABLE qn1 [MEAN TOTALS[STDDEV]%]. | ^ ctables.sps:17.56: error: CTABLES: Syntax error expecting string. 17 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [SUBTOTAL=x]. | ^ ctables.sps:18.50-18.51: error: CTABLES: Syntax error expecting THRU. 18 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [LO **]. | ^~ ctables.sps:19.55: error: CTABLES: Syntax error expecting number. 19 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [LO THRU x]. | ^ ctables.sps:20.54-20.55: error: CTABLES: Syntax error expecting number. 20 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [1 THRU **]. | ^~ ctables.sps:21.56-21.57: error: CTABLES: Syntax error expecting string. 21 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 ['x' THRU **]. | ^~ ctables.sps:22.48-22.49: error: CTABLES: Syntax error expecting identifier. 22 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&**]. | ^~ ctables.sps:23.47-23.48: error: CTABLES: Unknown postcompute &x. 23 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&x]. | ^~ ctables.sps:24.61-24.63: error: CTABLES: Syntax error expecting number between 0 and 100 for PTILE. 24 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 KEY=PTILE(qn1, 101). | ^~~ ctables.sps:25.58: error: CTABLES: Syntax error expecting `@:}@'. 25 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 KEY=MEAN(qn1. | ^ ctables.sps:26.54: error: CTABLES: Syntax error expecting `@{:@'. 26 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 KEY=MEAN. | ^ ctables.sps:27.54-27.55: error: CTABLES: Syntax error expecting INCLUDE or EXCLUDE. 27 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 MISSING=**. | ^~ ctables.sps:28.52-28.53: error: CTABLES: Syntax error expecting YES or NO. 28 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 TOTAL=**. | ^~ ctables.sps:29.52-29.53: error: CTABLES: Syntax error expecting string. 29 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 LABEL=**. | ^~ ctables.sps:30.55-30.56: error: CTABLES: Syntax error expecting BEFORE or AFTER. 30 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 POSITION=**. | ^~ ctables.sps:31.52-31.53: error: CTABLES: Syntax error expecting INCLUDE or EXCLUDE. 31 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 EMPTY=**. | ^~ ctables.sps:32.46-32.47: error: CTABLES: Syntax error expecting ORDER, KEY, MISSING, TOTAL, LABEL, POSITION, or EMPTY. 32 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 **. | ^~ ctables.sps:33.54-33.55: error: CTABLES: Syntax error expecting TOTAL, LABEL, POSITION, or EMPTY. 33 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 [1,2,3] **. | ^~ ctables.sps:34.36: error: CTABLES: Syntax error expecting positive integer for SUBTOTAL. 34 | CTABLES /PCOMPUTE &k=EXPR(SUBTOTAL[0]). | ^ ctables.sps:35.37-35.38: error: CTABLES: Syntax error expecting `@:>@'. 35 | CTABLES /PCOMPUTE &k=EXPR(SUBTOTAL[1**]). | ^~ ctables.sps:36.31-36.32: error: CTABLES: Syntax error expecting THRU. 36 | CTABLES /PCOMPUTE &k=EXPR([LO **]). | ^~ ctables.sps:37.36-37.37: error: CTABLES: Syntax error expecting number. 37 | CTABLES /PCOMPUTE &k=EXPR([LO THRU **]). | ^~ ctables.sps:38.35-38.36: error: CTABLES: Syntax error expecting number. 38 | CTABLES /PCOMPUTE &k=EXPR([1 THRU **]). | ^~ ctables.sps:39.29-39.30: error: CTABLES: Syntax error expecting `@:>@'. 39 | CTABLES /PCOMPUTE &k=EXPR([1**]). | ^~ ctables.sps:40.29: error: CTABLES: Syntax error expecting `@:}@'. 40 | CTABLES /PCOMPUTE &k=EXPR((1x)). | ^ ctables.sps:41.19-41.20: error: CTABLES: Syntax error expecting &. 41 | CTABLES /PCOMPUTE **k. | ^~ ctables.sps:42.20: error: CTABLES: Syntax error expecting identifier. 42 | CTABLES /PCOMPUTE &1. | ^ ctables.sps:43.21-43.22: error: CTABLES: Syntax error expecting `=EXPR@{:@'. 43 | CTABLES /PCOMPUTE &k**. | ^~ ctables.sps:44.21-44.23: error: CTABLES: Syntax error expecting `=EXPR@{:@'. 44 | CTABLES /PCOMPUTE &k=**. | ^~~ ctables.sps:45.21-45.27: error: CTABLES: Syntax error expecting `=EXPR@{:@'. 45 | CTABLES /PCOMPUTE &k=EXPR**. | ^~~~~~~ ctables.sps:46.28: error: CTABLES: Syntax error expecting `@:}@'. 46 | CTABLES /PCOMPUTE &k=EXPR(1x). | ^ ctables.sps:47.31-47.49: warning: CTABLES: New definition of &k will override the previous definition. 47 | CTABLES /PCOMPUTE &k=EXPR(1) /PCOMPUTE &k=EXPR(2). | ^~~~~~~~~~~~~~~~~~~ ctables.sps:47.10-47.28: note: CTABLES: This is the previous definition. 47 | CTABLES /PCOMPUTE &k=EXPR(1) /PCOMPUTE &k=EXPR(2). | ^~~~~~~~~~~~~~~~~~~ ctables.sps:47.50: error: CTABLES: Syntax error expecting `/'. 47 | CTABLES /PCOMPUTE &k=EXPR(1) /PCOMPUTE &k=EXPR(2). | ^ ctables.sps:48.53-48.64: error: CTABLES: Syntax error expecting summary function name. 48 | CTABLES /PCOMPUTE &k=EXPR(1) /PPROPERTIES &k FORMAT=NOTAFUNCTION. | ^~~~~~~~~~~~ ctables.sps:49.59-49.60: error: CTABLES: Syntax error expecting number between 0 and 100 for PTILE. 49 | CTABLES /PCOMPUTE &k=EXPR(1) /PPROPERTIES &k FORMAT=PTILE **. | ^~ ctables.sps:50.52-50.53: error: CTABLES: Syntax error expecting string. 50 | CTABLES /PCOMPUTE &k=EXPR(1) /PPROPERTIES &k LABEL=**. | ^~ ctables.sps:51.61-51.62: error: CTABLES: Syntax error expecting YES or NO. 51 | CTABLES /PCOMPUTE &k=EXPR(1) /PPROPERTIES &k HIDESOURCECATS=**. | ^~ ctables.sps:52.46-52.47: error: CTABLES: Syntax error expecting LABEL, FORMAT, or HIDESOURCECATS. 52 | CTABLES /PCOMPUTE &k=EXPR(1) /PPROPERTIES &k **. | ^~ ctables.sps:53.23-53.24: error: CTABLES: Syntax error expecting string. 53 | CTABLES /FORMAT EMPTY=**. | ^~ ctables.sps:54.25-54.26: error: CTABLES: Syntax error expecting string. 54 | CTABLES /FORMAT MISSING=**. | ^~ ctables.sps:55.17-55.18: error: CTABLES: Syntax error expecting MINCOLWIDTH, MAXCOLWIDTH, UNITS, EMPTY, or MISSING. 55 | CTABLES /FORMAT **. | ^~ ctables.sps:56.17-56.45: error: CTABLES: MINCOLWIDTH must not be greater than MAXCOLWIDTH. 56 | CTABLES /FORMAT MINCOLWIDTH=20 MAXCOLWIDTH=10/. | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ctables.sps:57.18-57.19: error: CTABLES: Syntax error expecting VARIABLES. 57 | CTABLES /VLABELS **. | ^~ ctables.sps:58.28-58.34: error: CTABLES: NOTAVAR is not a variable name. 58 | CTABLES /VLABELS VARIABLES=NOTAVAR. | ^~~~~~~ ctables.sps:59.32-59.33: error: CTABLES: Syntax error expecting DISPLAY. 59 | CTABLES /VLABELS VARIABLES=qn1 **. | ^~ ctables.sps:60.40-60.41: error: CTABLES: Syntax error expecting DEFAULT, NAME, LABEL, BOTH, or NONE. 60 | CTABLES /VLABELS VARIABLES=qn1 DISPLAY=**. | ^~ ctables.sps:61.17-61.18: error: CTABLES: Syntax error expecting COUNTDUPLICATES. 61 | CTABLES /MRSETS **. | ^~ ctables.sps:62.33-62.34: error: CTABLES: Syntax error expecting YES or NO. 62 | CTABLES /MRSETS COUNTDUPLICATES=**. | ^~ ctables.sps:63.19-63.20: error: CTABLES: Syntax error expecting VARIABLE or LISTWISE. 63 | CTABLES /SMISSING **. | ^~ ctables.sps:64.17-64.18: error: CTABLES: Syntax error expecting VARIABLE. 64 | CTABLES /WEIGHT **. | ^~ ctables.sps:65.26-65.32: error: CTABLES: NOTAVAR is not a variable name. 65 | CTABLES /WEIGHT VARIABLE=NOTAVAR. | ^~~~~~~ ctables.sps:66.32: error: CTABLES: Syntax error expecting integer 2 or greater for HIDESMALLCOUNTS COUNT. 66 | CTABLES /HIDESMALLCOUNTS COUNT=1. | ^ ctables.sps:67.10-67.13: error: CTABLES: Syntax error expecting one of the following: FORMAT, VLABELS, MRSETS, SMISSING, PCOMPUTE, PPROPERTIES, WEIGHT, HIDESMALLCOUNTS, TABLE. 67 | CTABLES /QUUX. | ^~~~ ctables.sps:68.33: error: CTABLES: Syntax error expecting `/'. 68 | CTABLES /HIDESMALLCOUNTS COUNT=2. | ^ ctables.sps:69.19-69.20: error: CTABLES: Syntax error expecting `/'. 69 | CTABLES /TABLE qn1**. | ^~ ctables.sps:70.38-70.39: error: CTABLES: Syntax error expecting COLUMN, ROW, or LAYER. 70 | CTABLES /TABLE qn1 /SLABELS POSITION=**. | ^~ ctables.sps:71.37-71.38: error: CTABLES: Syntax error expecting YES or NO. 71 | CTABLES /TABLE qn1 /SLABELS VISIBLE=**. | ^~ ctables.sps:72.29-72.30: error: CTABLES: Syntax error expecting POSITION or VISIBLE. 72 | CTABLES /TABLE qn1 /SLABELS **. | ^~ ctables.sps:73.39-73.40: error: CTABLES: Syntax error expecting OPPOSITE or LAYER. 73 | CTABLES /TABLE qn1 /CLABELS ROWLABELS=**. | ^~ ctables.sps:74.39-74.40: error: CTABLES: Syntax error expecting OPPOSITE or LAYER. 74 | CTABLES /TABLE qn1 /CLABELS COLLABELS=**. | ^~ ctables.sps:75.29-75.30: error: CTABLES: Syntax error expecting AUTO, ROWLABELS, or COLLABELS. 75 | CTABLES /TABLE qn1 /CLABELS **. | ^~ ctables.sps:76.30-76.31: error: CTABLES: Syntax error expecting CILEVEL. 76 | CTABLES /TABLE qn1 /CRITERIA **. | ^~ ctables.sps:77.38-77.40: error: CTABLES: Syntax error expecting number in @<:@0,100@:}@ for CILEVEL. 77 | CTABLES /TABLE qn1 /CRITERIA CILEVEL=101. | ^~~ ctables.sps:78.28-78.29: error: CTABLES: Syntax error expecting CAPTION, CORNER, or TITLE. 78 | CTABLES /TABLE qn1 /TITLES **. | ^~ ctables.sps:79.34-79.35: error: CTABLES: Syntax error expecting CHISQUARE. 79 | CTABLES /TABLE qn1 /SIGTEST TYPE=**. | ^~ ctables.sps:80.35-80.36: error: CTABLES: Syntax error expecting number in @<:@0,1@:}@ for ALPHA. 80 | CTABLES /TABLE qn1 /SIGTEST ALPHA=**. | ^~ ctables.sps:81.43-81.44: error: CTABLES: Syntax error expecting YES or NO. 81 | CTABLES /TABLE qn1 /SIGTEST INCLUDEMRSETS=**. | ^~ ctables.sps:82.40-82.41: error: CTABLES: Syntax error expecting ALLVISIBLE or SUBTOTALS. 82 | CTABLES /TABLE qn1 /SIGTEST CATEGORIES=**. | ^~ ctables.sps:83.29-83.30: error: CTABLES: Syntax error expecting TYPE, ALPHA, INCLUDEMRSETS, or CATEGORIES. 83 | CTABLES /TABLE qn1 /SIGTEST **. | ^~ ctables.sps:84.38-84.39: error: CTABLES: Syntax error expecting PROP or MEAN. 84 | CTABLES /TABLE qn1 /COMPARETEST TYPE=**. | ^~ ctables.sps:85.39-85.40: error: CTABLES: Syntax error expecting number in (0,1) for ALPHA. 85 | CTABLES /TABLE qn1 /COMPARETEST ALPHA=**. | ^~ ctables.sps:86.39: error: CTABLES: Syntax error expecting number in (0,1) for ALPHA. 86 | CTABLES /TABLE qn1 /COMPARETEST ALPHA=0,5. | ^ ctables.sps:87.40-87.41: error: CTABLES: Syntax error expecting BONFERRONI, BH, or NONE. 87 | CTABLES /TABLE qn1 /COMPARETEST ADJUST=**. | ^~ ctables.sps:88.47-88.48: error: CTABLES: Syntax error expecting YES or NO. 88 | CTABLES /TABLE qn1 /COMPARETEST INCLUDEMRSETS=**. | ^~ ctables.sps:89.47-89.48: error: CTABLES: Syntax error expecting ALLCATS or TESTEDCATS. 89 | CTABLES /TABLE qn1 /COMPARETEST MEANSVARIANCE=**. | ^~ ctables.sps:90.44-90.45: error: CTABLES: Syntax error expecting ALLVISIBLE or SUBTOTALS. 90 | CTABLES /TABLE qn1 /COMPARETEST CATEGORIES=**. | ^~ ctables.sps:91.39-91.40: error: CTABLES: Syntax error expecting YES or NO. 91 | CTABLES /TABLE qn1 /COMPARETEST MERGE=**. | ^~ ctables.sps:92.39-92.40: error: CTABLES: Syntax error expecting APA or SIMPLE. 92 | CTABLES /TABLE qn1 /COMPARETEST STYLE=**. | ^~ ctables.sps:93.41-93.42: error: CTABLES: Syntax error expecting YES or NO. 93 | CTABLES /TABLE qn1 /COMPARETEST SHOWSIG=**. | ^~ ctables.sps:94.33-94.34: error: CTABLES: Syntax error expecting one of the following: TYPE, ALPHA, ADJUST, INCLUDEMRSETS, MEANSVARIANCE, CATEGORIES, MERGE, STYLE, SHOWSIG. 94 | CTABLES /TABLE qn1 /COMPARETEST **. | ^~ ctables.sps:95.21-95.26: error: CTABLES: Syntax error expecting TABLE, SLABELS, CLABELS, CRITERIA, CATEGORIES, TITLES, SIGTEST, or COMPARETEST. 95 | CTABLES /TABLE qn1 /FORMAT. | ^~~~~~ ctables.sps:95.21-95.26: note: CTABLES: This subcommand must appear before TABLE. 95 | CTABLES /TABLE qn1 /FORMAT. | ^~~~~~ ctables.sps:96: error: CTABLES: ROWLABELS and COLLABELS may not both be specified. ctables.sps:96.21-96.46: note: CTABLES: This is the first specification. 96 | CTABLES /TABLE qn1 /CLABELS ROWLABELS=OPPOSITE /CLABELS COLLABELS=OPPOSITE. | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ctables.sps:96.49-96.74: note: CTABLES: This is the second specification. 96 | CTABLES /TABLE qn1 /CLABELS ROWLABELS=OPPOSITE /CLABELS COLLABELS=OPPOSITE. | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ctables.sps:97.16-97.26: error: CTABLES: Cannot nest scale variables. 97 | CTABLES /TABLE qn20 > qnd1. | ^~~~~~~~~~~ ctables.sps:97.16-97.19: note: CTABLES: This is an outer scale variable. 97 | CTABLES /TABLE qn20 > qnd1. | ^~~~ ctables.sps:97.23-97.26: note: CTABLES: This is an inner scale variable. 97 | CTABLES /TABLE qn20 > qnd1. | ^~~~ ctables.sps:98.16-98.35: error: CTABLES: Summaries may only be requested for categorical variables at the innermost nesting level. 98 | CTABLES /TABLE qn1 [ROWPCT] > qnsa1. | ^~~~~~~~~~~~~~~~~~~~ ctables.sps:98.16-98.18: note: CTABLES: This outer categorical variable has a summary. 98 | CTABLES /TABLE qn1 [ROWPCT] > qnsa1. | ^~~ ctables.sps:100.52-100.56: error: CTABLES: Failed to parse category specification as format DATETIME: Day (123) must be between 1 and 31.. 100 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=datetime ['123']. | ^~~~~ ]]) AT_CLEANUP AT_SETUP([CTABLES parsing - more negative]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /PCOMPUTE &pc=EXPR(SUBTOTAL) /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&pc]. CTABLES /PCOMPUTE &pc=EXPR(TOTAL) /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&pc]. CTABLES /PCOMPUTE &pc=EXPR(SUBTOTAL) /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&pc, SUBTOTAL, SUBTOTAL]. STRING string(A8). CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 ['string']. CTABLES /TABLE string /CATEGORIES VARIABLES=string [1]. CTABLES /TABLE qn1 /CLABELS ROWLABELS=OPPOSITE /CATEGORIES VARIABLES=qn1 KEY=MEAN(qn1). CTABLES /TABLE qnd1 /CLABELS ROWLABELS=OPPOSITE. CTABLES /TABLE qn1 + string /CLABELS ROWLABELS=OPPOSITE. CTABLES /TABLE qn1 + qnsa1 /CLABELS ROWLABELS=OPPOSITE. CTABLES /TABLE qn105ba + qn105bb /CLABELS ROWLABELS=OPPOSITE /CATEGORIES VARIABLES=qn105ba [1,2,3]. CTABLES /PCOMPUTE &x=EXPR(1**2**3). CTABLES /PCOMPUTE &x=EXPR([**]). CTABLES /PCOMPUTE &x=EXPR(**). CTABLES /TABLE. CTABLES /TABLE qn113 [COUNT] BY qn114 [COUNT] BY qn116 [COUNT]. CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 KEY=PTILE(qn1, 50). CTABLES /TABLE $mrset. CTABLES /TABLE qn113 /SIGTEST TYPE=CHISQUARE. CTABLES /TABLE qn113 /COMPARETEST TYPE=PROP. CTABLES /TABLE qn113 [COUNT.UCL]. CTABLES /TABLE qn1 /CATEGORIES **. CTABLES /TITLES. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [1], [[ctables.sps:2.76-2.78: error: CTABLES: Computed category &pc references a category not included in the category list. 2 | CTABLES /PCOMPUTE &pc=EXPR(SUBTOTAL) /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&pc]. | ^~~ ctables.sps:2.28-2.35: note: CTABLES: This is the missing category. 2 | CTABLES /PCOMPUTE &pc=EXPR(SUBTOTAL) /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&pc]. | ^~~~~~~~ ctables.sps:2.76-2.79: note: CTABLES: To fix the problem, add subtotals to the list of categories here. 2 | CTABLES /PCOMPUTE &pc=EXPR(SUBTOTAL) /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&pc]. | ^~~~ ctables.sps:3.73-3.75: error: CTABLES: Computed category &pc references a category not included in the category list. 3 | CTABLES /PCOMPUTE &pc=EXPR(TOTAL) /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&pc]. | ^~~ ctables.sps:3.28-3.32: note: CTABLES: This is the missing category. 3 | CTABLES /PCOMPUTE &pc=EXPR(TOTAL) /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&pc]. | ^~~~~ ctables.sps:3: note: CTABLES: To fix the problem, add TOTAL=YES to the variable's CATEGORIES specification. ctables.sps:4.76-4.99: error: CTABLES: These categories include 2 instances of SUBTOTAL or HSUBTOTAL, so references from computed categories must refer to subtotals by position, e.g. SUBTOTAL[1]. 4 | CTABLES /PCOMPUTE &pc=EXPR(SUBTOTAL) /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&pc, SUBTOTAL, SUBTOTAL]. | ^~~~~~~~~~~~~~~~~~~~~~~~ ctables.sps:4.28-4.35: note: CTABLES: This is the reference that lacks a position. 4 | CTABLES /PCOMPUTE &pc=EXPR(SUBTOTAL) /TABLE qn1 /CATEGORIES VARIABLES=qn1 [&pc, SUBTOTAL, SUBTOTAL]. | ^~~~~~~~ ctables.sps:7.47-7.54: error: CTABLES: This category specification may be applied only to string variables, but this subcommand tries to apply it to numeric variable QN1. 7 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 ['string']. | ^~~~~~~~ ctables.sps:8.53: error: CTABLES: This category specification may be applied only to numeric variables, but this subcommand tries to apply it to string variable string. 8 | CTABLES /TABLE string /CATEGORIES VARIABLES=string [1]. | ^ ctables.sps:10.74-10.86: error: CTABLES: Data-dependent sorting is not implemented. 10 | CTABLES /TABLE qn1 /CLABELS ROWLABELS=OPPOSITE /CATEGORIES VARIABLES=qn1 KEY=MEAN(qn1). | ^~~~~~~~~~~~~ ctables.sps:12: error: CTABLES: To move category labels from one axis to another, the variables whose labels are to be moved must be categorical, but qnd1 is scale. ctables.sps:12.22-12.47: note: CTABLES: This syntax moves category labels to another axis. 12 | CTABLES /TABLE qnd1 /CLABELS ROWLABELS=OPPOSITE. | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ctables.sps:13: error: CTABLES: To move category labels from one axis to another, the variables whose labels are to be moved must all have the same width, but QN1 has width 0 and string has width 8. ctables.sps:13.30-13.55: note: CTABLES: This syntax moves category labels to another axis. 13 | CTABLES /TABLE qn1 + string /CLABELS ROWLABELS=OPPOSITE. | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ctables.sps:14: error: CTABLES: To move category labels from one axis to another, the variables whose labels are to be moved must all have the same value labels, but QN1 and QNSA1 have different value labels. ctables.sps:14.29-14.54: note: CTABLES: This syntax moves category labels to another axis. 14 | CTABLES /TABLE qn1 + qnsa1 /CLABELS ROWLABELS=OPPOSITE. | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ctables.sps:15: error: CTABLES: To move category labels from one axis to another, the variables whose labels are to be moved must all have the same category specifications, but QN105BA and QN105BB have different category specifications. ctables.sps:15.35-15.60: note: CTABLES: This syntax moves category labels to another axis. 15 | CTABLES /TABLE qn105ba + qn105bb /CLABELS ROWLABELS=OPPOSITE /CATEGORIES VARIABLES=qn105ba [1,2,3]. | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ctables.sps:17.27-17.33: warning: CTABLES: The exponentiation operator (`**') is left-associative: `a**b**c' equals `(a**b)**c', not `a**(b**c)'. To disable this warning, insert parentheses. 17 | CTABLES /PCOMPUTE &x=EXPR(1**2**3). | ^~~~~~~ ctables.sps:17.35: error: CTABLES: Syntax error expecting `/'. 17 | CTABLES /PCOMPUTE &x=EXPR(1**2**3). | ^ ctables.sps:18.28-18.29: error: CTABLES: Syntax error expecting number or string or range. 18 | CTABLES /PCOMPUTE &x=EXPR([**]). | ^~ ctables.sps:19.27-19.28: error: CTABLES: Syntax error in postcompute expression. 19 | CTABLES /PCOMPUTE &x=EXPR(**). | ^~ ctables.sps:21.15: error: CTABLES: At least one variable must be specified. 21 | CTABLES /TABLE. | ^ ctables.sps:23: error: CTABLES: Summaries may appear only on one axis. ctables.sps:23.50-23.54: note: CTABLES: This variable on the layers axis has a summary. 23 | CTABLES /TABLE qn113 [COUNT] BY qn114 [COUNT] BY qn116 [COUNT]. | ^~~~~ ctables.sps:23.16-23.20: note: CTABLES: This variable on the rows axis has a summary. 23 | CTABLES /TABLE qn113 [COUNT] BY qn114 [COUNT] BY qn116 [COUNT]. | ^~~~~ ctables.sps:23.33-23.37: note: CTABLES: This variable on the columns axis has a summary. 23 | CTABLES /TABLE qn113 [COUNT] BY qn114 [COUNT] BY qn116 [COUNT]. | ^~~~~ ctables.sps:23.33-23.37: note: CTABLES: This is a scale variable, so it always has a summary even if the syntax does not explicitly specify one. 23 | CTABLES /TABLE qn113 [COUNT] BY qn114 [COUNT] BY qn116 [COUNT]. | ^~~~~ ctables.sps:25.46-25.63: error: CTABLES: Data-dependent sorting is not implemented. 25 | CTABLES /TABLE qn1 /CATEGORIES VARIABLES=qn1 KEY=PTILE(qn1, 50). | ^~~~~~~~~~~~~~~~~~ ctables.sps:27.16-27.21: error: CTABLES: Multiple response set support not implemented. 27 | CTABLES /TABLE $mrset. | ^~~~~~ ctables.sps:29.23-29.44: error: CTABLES: Support for SIGTEST not yet implemented. 29 | CTABLES /TABLE qn113 /SIGTEST TYPE=CHISQUARE. | ^~~~~~~~~~~~~~~~~~~~~~ ctables.sps:30.23-30.43: error: CTABLES: Support for COMPARETEST not yet implemented. 30 | CTABLES /TABLE qn113 /COMPARETEST TYPE=PROP. | ^~~~~~~~~~~~~~~~~~~~~ ctables.sps:32.23-32.31: error: CTABLES: Support for LCL, UCL, and SE summary functions is not yet implemented. 32 | CTABLES /TABLE qn113 [COUNT.UCL]. | ^~~~~~~~~ ctables.sps:34.32-34.33: error: CTABLES: Syntax error expecting VARIABLES. 34 | CTABLES /TABLE qn1 /CATEGORIES **. | ^~ ctables.sps:36.10-36.15: error: CTABLES: Syntax error expecting one of the following: FORMAT, VLABELS, MRSETS, SMISSING, PCOMPUTE, PPROPERTIES, WEIGHT, HIDESMALLCOUNTS, TABLE. 36 | CTABLES /TITLES. | ^~~~~~ ctables.sps:36.10-36.15: note: CTABLES: TABLE must appear before this subcommand. 36 | CTABLES /TITLES. | ^~~~~~ ]]) AT_CLEANUP AT_SETUP([CTABLES one categorical variable]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /TABLE qn1. CTABLES /TABLE BY qn1. CTABLES /TABLE BY BY qn1. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────────────────────────────┼─────┤ │ 1. How often do you usually drive a car or other Every day │ 4667│ │motor vehicle? Several days a week │ 1274│ │ Once a week or less │ 361│ │ Only certain times a │ 130│ │ year │ │ │ Never │ 540│ ╰────────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭──────────────────────────────────────────────────────────────────────────────╮ │ 1. How often do you usually drive a car or other motor vehicle? │ ├─────────┬──────────────────┬──────────────────┬────────────────────────┬─────┤ │ │ Several days a │ Once a week or │ Only certain times a │ │ │Every day│ week │ less │ year │Never│ ├─────────┼──────────────────┼──────────────────┼────────────────────────┼─────┤ │ Count │ Count │ Count │ Count │Count│ ├─────────┼──────────────────┼──────────────────┼────────────────────────┼─────┤ │ 4667│ 1274│ 361│ 130│ 540│ ╰─────────┴──────────────────┴──────────────────┴────────────────────────┴─────╯ Custom Tables Every day ╭─────╮ │Count│ ├─────┤ │ 4667│ ╰─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES one string variable]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. STRING licensed(A8). MISSING VALUES licensed('DontKnow', 'Refused'). RECODE qnd7a(1='Yes')(2='No')(3='DontKnow')(4='Refused') INTO licensed. CTABLES /TABLE licensed. CTABLES /TABLE licensed [COUNT, TOTALS[COUNT, VALIDN]] /CATEGORIES VARIABLES=ALL TOTAL=YES MISSING=INCLUDE. CTABLES /TABLE licensed /CATEGORIES VARIABLES=licensed ['Yes', 'No'] TOTAL=YES. * Notice that the string matching is case-sensitive. CTABLES /TABLE licensed /CATEGORIES VARIABLES=licensed ['Yes', 'no'] TOTAL=YES. CTABLES /TABLE licensed /CATEGORIES VARIABLES=licensed ['No' THRU 'yes'] TOTAL=YES. CTABLES /PCOMPUTE ¬yes=EXPR(['No']+['DontKnow']+['Refused']) /PPROPERTIES ¬yes LABEL='Not Yes' HIDESOURCECATS=YES /TABLE licensed /CATEGORIES VARIABLES=licensed ['Yes', ¬yes, 'No', 'DontKnow', 'Refused']. CTABLES /PCOMPUTE ¬yes=EXPR(['DontKnow' THRU 'No'] + ['Refused']) /PPROPERTIES ¬yes LABEL='Not Yes' HIDESOURCECATS=YES /TABLE licensed /CATEGORIES VARIABLES=licensed ['Yes', ¬yes, 'DontKnow' THRU 'No', 'Refused']. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭────────────┬─────╮ │ │Count│ ├────────────┼─────┤ │licensed No │ 572│ │ Yes│ 6379│ ╰────────────┴─────╯ Custom Tables ╭─────────────────┬─────┬───────╮ │ │Count│Valid N│ ├─────────────────┼─────┼───────┤ │licensed DontKnow│ 4│ │ │ No │ 572│ │ │ Refused │ 44│ │ │ Yes │ 6379│ │ │ Total │ 6999│ 6951│ ╰─────────────────┴─────┴───────╯ Custom Tables ╭──────────────┬─────╮ │ │Count│ ├──────────────┼─────┤ │licensed Yes │ 6379│ │ No │ 572│ │ Total│ 6951│ ╰──────────────┴─────╯ Custom Tables ╭──────────────┬─────╮ │ │Count│ ├──────────────┼─────┤ │licensed Yes │ 6379│ │ no │ 0│ │ Total│ 6379│ ╰──────────────┴─────╯ Custom Tables ╭────────────────┬─────╮ │ │Count│ ├────────────────┼─────┤ │licensed No │ 572│ │ Refused│ 44│ │ Yes │ 6379│ │ Total │ 6995│ ╰────────────────┴─────╯ Custom Tables ╭────────────────┬─────╮ │ │Count│ ├────────────────┼─────┤ │licensed Yes │ 6379│ │ Not Yes│ 620│ ╰────────────────┴─────╯ Custom Tables ╭────────────────┬─────╮ │ │Count│ ├────────────────┼─────┤ │licensed Yes │ 6379│ │ Not Yes│ 620│ ╰────────────────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES one scale variable]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. DESCRIPTIVES qnd1. 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 Descriptive Statistics ╭──────────────────────────┬────┬─────┬───────┬───────┬───────────╮ │ │ N │ Mean│Std Dev│Minimum│ Maximum │ ├──────────────────────────┼────┼─────┼───────┼───────┼───────────┤ │D1. AGE: What is your age?│6930│48.26│ 19.01│ 16│86 or older│ │Valid N (listwise) │6999│ │ │ │ │ │Missing N (listwise) │ 69│ │ │ │ │ ╰──────────────────────────┴────┴─────┴───────┴───────┴───────────╯ 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 ╭──────────────────────────╮ │D1. AGE: What is your age?│ ├──────────────────────────┤ │ Mean │ ├──────────────────────────┤ │ 48│ ╰──────────────────────────╯ Custom Tables D1. AGE: What is your age? ╭────╮ │Mean│ ├────┤ │ 48│ ╰────╯ ]) AT_CLEANUP AT_SETUP([CTABLES simple stacking]) AT_KEYWORDS([stack stacked]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /TABLE qn105ba + qn105bb + qn105bc + qn105bd BY qns3a [COLPCT PCT8.0]. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭───────────────────────────────────────────────────────────────┬──────────────╮ │ │ S3a. GENDER: │ │ ├──────┬───────┤ │ │ Male │ Female│ │ ├──────┼───────┤ │ │Column│ Column│ │ │ % │ % │ ├───────────────────────────────────────────────────────────────┼──────┼───────┤ │105b. How likely is it that drivers who have had Almost │ 10%│ 11%│ │too much to drink to drive safely will A. Get certain │ │ │ │stopped by the police? Very likely │ 21%│ 22%│ │ Somewhat │ 38%│ 42%│ │ likely │ │ │ │ Somewhat │ 21%│ 18%│ │ unlikely │ │ │ │ Very │ 10%│ 8%│ │ unlikely │ │ │ ├───────────────────────────────────────────────────────────────┼──────┼───────┤ │105b. How likely is it that drivers who have had Almost │ 14%│ 18%│ │too much to drink to drive safely will B. Have an certain │ │ │ │accident? Very likely │ 36%│ 45%│ │ Somewhat │ 39%│ 32%│ │ likely │ │ │ │ Somewhat │ 9%│ 4%│ │ unlikely │ │ │ │ Very │ 3%│ 2%│ │ unlikely │ │ │ ├───────────────────────────────────────────────────────────────┼──────┼───────┤ │105b. How likely is it that drivers who have had Almost │ 18%│ 16%│ │too much to drink to drive safely will C. Be certain │ │ │ │convicted for drunk driving? Very likely │ 32%│ 28%│ │ Somewhat │ 27%│ 32%│ │ likely │ │ │ │ Somewhat │ 15%│ 15%│ │ unlikely │ │ │ │ Very │ 9%│ 9%│ │ unlikely │ │ │ ├───────────────────────────────────────────────────────────────┼──────┼───────┤ │105b. How likely is it that drivers who have had Almost │ 16%│ 16%│ │too much to drink to drive safely will D. Be certain │ │ │ │arrested for drunk driving? Very likely │ 26%│ 27%│ │ Somewhat │ 32%│ 35%│ │ likely │ │ │ │ Somewhat │ 17%│ 15%│ │ unlikely │ │ │ │ Very │ 9%│ 7%│ │ unlikely │ │ │ ╰───────────────────────────────────────────────────────────────┴──────┴───────╯ ]) AT_CLEANUP AT_SETUP([CTABLES show or hide empty categories]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. IF (qn105ba = 2) qn105ba = 1. IF (qns3a = 1) qns3a = 2. CTABLES /TABLE qn105ba BY qns3a [COLPCT PCT8.0]. CTABLES /TABLE qn105ba BY qns3a [COLPCT PCT8.0] /CATEGORIES VAR=qn105ba EMPTY=EXCLUDE. CTABLES /TABLE qn105ba BY qns3a [COLPCT PCT8.0] /CATEGORIES VAR=qns3a EMPTY=EXCLUDE. CTABLES /TABLE qn105ba BY qns3a [COLPCT PCT8.0] /CATEGORIES VAR=ALL EMPTY=EXCLUDE. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭──────────────────────────────────────────────────────────────┬───────────────╮ │ │ S3a. GENDER: │ │ ├───────┬───────┤ │ │ Male │ Female│ │ ├───────┼───────┤ │ │ Column│ Column│ │ │ % │ % │ ├──────────────────────────────────────────────────────────────┼───────┼───────┤ │105b. How likely is it that drivers who have had Almost │ .│ 32%│ │too much to drink to drive safely will A. Get certain │ │ │ │stopped by the police? Very likely│ .│ 0%│ │ Somewhat │ .│ 40%│ │ likely │ │ │ │ Somewhat │ .│ 19%│ │ unlikely │ │ │ │ Very │ .│ 9%│ │ unlikely │ │ │ ╰──────────────────────────────────────────────────────────────┴───────┴───────╯ Custom Tables ╭──────────────────────────────────────────────────────────────┬───────────────╮ │ │ S3a. GENDER: │ │ ├───────┬───────┤ │ │ Male │ Female│ │ ├───────┼───────┤ │ │ Column│ Column│ │ │ % │ % │ ├──────────────────────────────────────────────────────────────┼───────┼───────┤ │105b. How likely is it that drivers who have had Almost │ .│ 32%│ │too much to drink to drive safely will A. Get certain │ │ │ │stopped by the police? Somewhat │ .│ 40%│ │ likely │ │ │ │ Somewhat │ .│ 19%│ │ unlikely │ │ │ │ Very │ .│ 9%│ │ unlikely │ │ │ ╰──────────────────────────────────────────────────────────────┴───────┴───────╯ Custom Tables ╭────────────────────────────────────────────────────────────────────┬─────────╮ │ │ S3a. │ │ │ GENDER: │ │ ├─────────┤ │ │ Female │ │ ├─────────┤ │ │ Column %│ ├────────────────────────────────────────────────────────────────────┼─────────┤ │105b. How likely is it that drivers who have had too Almost │ 32%│ │much to drink to drive safely will A. Get stopped by certain │ │ │the police? Very likely │ 0%│ │ Somewhat │ 40%│ │ likely │ │ │ Somewhat │ 19%│ │ unlikely │ │ │ Very │ 9%│ │ unlikely │ │ ╰────────────────────────────────────────────────────────────────────┴─────────╯ Custom Tables ╭────────────────────────────────────────────────────────────────────┬─────────╮ │ │ S3a. │ │ │ GENDER: │ │ ├─────────┤ │ │ Female │ │ ├─────────┤ │ │ Column %│ ├────────────────────────────────────────────────────────────────────┼─────────┤ │105b. How likely is it that drivers who have had too Almost │ 32%│ │much to drink to drive safely will A. Get stopped by certain │ │ │the police? Somewhat │ 40%│ │ likely │ │ │ Somewhat │ 19%│ │ unlikely │ │ │ Very │ 9%│ │ unlikely │ │ ╰────────────────────────────────────────────────────────────────────┴─────────╯ ]) AT_CLEANUP AT_SETUP([CTABLES categories and EMPTY]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], DATA LIST LIST NOTABLE /class datum size. BEGIN DATA 1 1 1 2 2 1 1 3 1 2 4 2 1 5 2 2 6 2 END DATA. VARIABLE LEVEL class datum size (NOMINAL). FORMATS class datum size (F1.0). * The following are the same except for the order of the CATEGORIES commands. * The test checks that they produce the same resuls. CTABLES /TABLE=class > datum BY size /CATEGORIES VARIABLES=ALL EMPTY=EXCLUDE /CATEGORIES VARIABLES=size TOTAL=YES. CTABLES /TABLE=class > datum BY size /CATEGORIES VARIABLES=size TOTAL=YES /CATEGORIES VARIABLES=ALL EMPTY=EXCLUDE. ]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭───────────────┬─────────────────╮ │ │ size │ │ ├─────┬─────┬─────┤ │ │ 1 │ 2 │Total│ │ ├─────┼─────┼─────┤ │ │Count│Count│Count│ ├───────────────┼─────┼─────┼─────┤ │class 1 datum 1│ 1│ │ 1│ │ 3│ 1│ │ 1│ │ 5│ │ 1│ 1│ │ ╶─────────┼─────┼─────┼─────┤ │ 2 datum 2│ 1│ │ 1│ │ 4│ │ 1│ 1│ │ 6│ │ 1│ 1│ ╰───────────────┴─────┴─────┴─────╯ Custom Tables ╭───────────────┬─────────────────╮ │ │ size │ │ ├─────┬─────┬─────┤ │ │ 1 │ 2 │Total│ │ ├─────┼─────┼─────┤ │ │Count│Count│Count│ ├───────────────┼─────┼─────┼─────┤ │class 1 datum 1│ 1│ │ 1│ │ 3│ 1│ │ 1│ │ 5│ │ 1│ 1│ │ ╶─────────┼─────┼─────┼─────┤ │ 2 datum 2│ 1│ │ 1│ │ 4│ │ 1│ 1│ │ 6│ │ 1│ 1│ ╰───────────────┴─────┴─────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES sorting categories]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. IF (QND5A=6) QND5A=-1. IF (QND5A=5) QND5A=-2. CTABLES /TABLE qnd5a /CATEGORIES VARIABLES=qnd5a KEY=VALUE ORDER=A /TABLE qnd5a /CATEGORIES VARIABLES=qnd5a KEY=VALUE ORDER=D /TABLE qnd5a /CATEGORIES VARIABLES=qnd5a KEY=LABEL ORDER=A /TABLE qnd5a /CATEGORIES VARIABLES=qnd5a KEY=LABEL ORDER=D. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────────────────────────────┼─────┤ │D5a. What would you say is your primary ethnic -2.00 │ 52│ │background? -1.00 │ 78│ │ Cuban │ 20│ │ Mexican │ 311│ │ Spanish │ 48│ │ South American │ 34│ │ Central American │ 0│ │ Puerto Rican, OR │ 0│ │ Something else │ 68│ │ Multiple - cannot choose│ 7│ │ one │ │ ╰────────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────────────────────────────┼─────┤ │D5a. What would you say is your primary ethnic Multiple - cannot choose│ 7│ │background? one │ │ │ Something else │ 68│ │ Puerto Rican, OR │ 0│ │ Central American │ 0│ │ South American │ 34│ │ Spanish │ 48│ │ Mexican │ 311│ │ Cuban │ 20│ │ -1.00 │ 78│ │ -2.00 │ 52│ ╰────────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────────────────────────────┼─────┤ │D5a. What would you say is your primary ethnic Central American │ 0│ │background? Cuban │ 20│ │ Mexican │ 311│ │ Multiple - cannot choose│ 7│ │ one │ │ │ Puerto Rican, OR │ 0│ │ Something else │ 68│ │ South American │ 34│ │ Spanish │ 48│ │ -2.00 │ 52│ │ -1.00 │ 78│ ╰────────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────────────────────────────┼─────┤ │D5a. What would you say is your primary ethnic Spanish │ 48│ │background? South American │ 34│ │ Something else │ 68│ │ Puerto Rican, OR │ 0│ │ Multiple - cannot choose│ 7│ │ one │ │ │ Mexican │ 311│ │ Cuban │ 20│ │ Central American │ 0│ │ -1.00 │ 78│ │ -2.00 │ 52│ ╰────────────────────────────────────────────────────────────────────────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES simple nesting]) AT_KEYWORDS([nest nested]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. 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=YES /CLABELS ROW=OPPOSITE. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭─────────────────────────────────────────────────────────────────┬─────┬──────╮ │ │ │ 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 ╭─────────────────────────────────┬────────┬──────┬─────────┬─────────┬────────╮ │ │ Almost │ Very │ Somewhat│ Somewhat│ Very │ │ │ certain│likely│ likely │ unlikely│unlikely│ │ ├────────┼──────┼─────────┼─────────┼────────┤ │ │ │ Table│ │ │ │ │ │ Table %│ % │ Table % │ Table % │ Table %│ ├─────────────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤ │S3a. Male 105b. How likely │ 4%│ 10%│ 17%│ 9%│ 5%│ │GENDER: is it that drivers│ │ │ │ │ │ │ who have had too │ │ │ │ │ │ │ much to drink to │ │ │ │ │ │ │ drive safely will │ │ │ │ │ │ │ A. Get stopped by │ │ │ │ │ │ │ the police? │ │ │ │ │ │ │ ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤ │ Female 105b. How likely │ 6%│ 12%│ 23%│ 10%│ 4%│ │ is it that drivers│ │ │ │ │ │ │ who have had too │ │ │ │ │ │ │ much to drink to │ │ │ │ │ │ │ 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│ │ │ │ │ │ │ who have had too │ │ │ │ │ │ │ much to drink to │ │ │ │ │ │ │ drive safely will │ │ │ │ │ │ │ B. Have an │ │ │ │ │ │ │ accident? │ │ │ │ │ │ │ ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤ │ Female 105b. How likely │ 10%│ 25%│ 18%│ 2%│ 1%│ │ is it that drivers│ │ │ │ │ │ │ who have had too │ │ │ │ │ │ │ much to drink to │ │ │ │ │ │ │ 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│ │ │ │ │ │ │ who have had too │ │ │ │ │ │ │ much to drink to │ │ │ │ │ │ │ drive safely will │ │ │ │ │ │ │ C. Be convicted │ │ │ │ │ │ │ for drunk driving?│ │ │ │ │ │ │ ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤ │ Female 105b. How likely │ 9%│ 15%│ 18%│ 8%│ 5%│ │ is it that drivers│ │ │ │ │ │ │ who have had too │ │ │ │ │ │ │ much to drink to │ │ │ │ │ │ │ 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│ │ │ │ │ │ │ who have had too │ │ │ │ │ │ │ much to drink to │ │ │ │ │ │ │ drive safely will │ │ │ │ │ │ │ D. Be arrested for│ │ │ │ │ │ │ drunk driving? │ │ │ │ │ │ │ ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤ │ Female 105b. How likely │ 9%│ 15%│ 19%│ 8%│ 4%│ │ is it that drivers│ │ │ │ │ │ │ who have had too │ │ │ │ │ │ │ much to drink to │ │ │ │ │ │ │ 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 AT_SETUP([CTABLES nesting and scale variables]) AT_KEYWORDS([nest nested]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /TABLE=qnd1 > qn1 BY qns3a. CTABLES /TABLE=qnd1 [MINIMUM, MAXIMUM, MEAN] > qns3a > (qn26 + qn27). CTABLES /TABLE=qnsa1 > qn105ba [COLPCT] BY qns1 /CATEGORIES VAR=qnsa1 EMPTY=EXCLUDE. CTABLES /TABLE=AgeGroup > qn20 [MEAN F8.1, STDDEV F8.1]. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭─────────────────────────────────────────────────────────────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │ Mean│ Mean │ ├─────────────────────────────────────────────────────────────────┼─────┼──────┤ │D1. AGE: What 1. How often do you usually drive Every day │ 46│ 46│ │is your age? a car or other motor vehicle? Several days a │ 51│ 59│ │ week │ │ │ │ Once a week or │ 44│ 54│ │ less │ │ │ │ Only certain │ 34│ 41│ │ times a year │ │ │ │ Never │ 39│ 55│ ╰─────────────────────────────────────────────────────────────────┴─────┴──────╯ Custom Tables ╭─────────────────────────────────────────────────────────┬───────┬───────┬────╮ │ │Minimum│Maximum│Mean│ ├─────────────────────────────────────────────────────────┼───────┼───────┼────┤ │D1. AGE: S3a. Male 26. During the last 12 Yes│ 16│ 86│ 42│ │What is GENDER: months, has there been a │ │ │ │ │your time when you felt you │ │ │ │ │age? should cut down on your No │ 16│ 86│ 46│ │ drinking? │ │ │ │ │ ╶───────────────────────────────────────┼───────┼───────┼────┤ │ Female 26. During the last 12 Yes│ 16│ 86│ 43│ │ months, has there been a │ │ │ │ │ time when you felt you │ │ │ │ │ should cut down on your No │ 16│ 86│ 48│ │ drinking? │ │ │ │ ├─────────────────────────────────────────────────────────┼───────┼───────┼────┤ │D1. AGE: S3a. Male 27. During the last 12 Yes│ 16│ 86│ 38│ │What is GENDER: months, has there been a │ │ │ │ │your time when people criticized No │ 16│ 86│ 46│ │age? your drinking? │ │ │ │ │ ╶───────────────────────────────────────┼───────┼───────┼────┤ │ Female 27. During the last 12 Yes│ 17│ 69│ 37│ │ months, has there been a │ │ │ │ │ time when people criticized No │ 16│ 86│ 48│ │ your drinking? │ │ │ │ ╰─────────────────────────────────────────────────────────┴───────┴───────┴────╯ Custom Tables ╭─────────────────────────────┬────────────────────────────────────────────────╮ │ │S1. Including yourself, how many members of this│ │ │ household are age 16 or older? │ │ ├──────┬──────┬──────┬──────┬──────┬──────┬──────┤ │ │ │ │ │ │ │ │ 6 or │ │ │ None │ 1 │ 2 │ 3 │ 4 │ 5 │ more │ │ ├──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │ │Column│Column│Column│Column│Column│Column│Column│ │ │ % │ % │ % │ % │ % │ % │ % │ ├─────────────────────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │Sa1. RDD 105b. Almost │ .│ 9.5%│ 8.2%│ 12.4%│ 9.9%│ 20.0%│ 23.8%│ │SAMPLE How certain │ │ │ │ │ │ │ │ │SOURCE: likely │ │ │ │ │ │ │ │ │ is it Very │ .│ 24.9%│ 18.5%│ 24.0%│ 26.6%│ 25.5%│ 33.3%│ │ that likely │ │ │ │ │ │ │ │ │ drivers │ │ │ │ │ │ │ │ │ who have │ │ │ │ │ │ │ │ │ had too Somewhat│ .│ 38.3%│ 41.9%│ 38.6%│ 37.5%│ 36.4%│ 23.8%│ │ much to likely │ │ │ │ │ │ │ │ │ drink to │ │ │ │ │ │ │ │ │ drive Somewhat│ .│ 18.1%│ 21.7%│ 16.8%│ 16.7%│ 10.9%│ 9.5%│ │ safely unlikely│ │ │ │ │ │ │ │ │ will A. │ │ │ │ │ │ │ │ │ Get │ │ │ │ │ │ │ │ │ stopped Very │ .│ 9.2%│ 9.7%│ 8.2%│ 9.4%│ 7.3%│ 9.5%│ │ by the unlikely│ │ │ │ │ │ │ │ │ police? │ │ │ │ │ │ │ │ ╰─────────────────────────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────╯ Custom Tables ╭──────────────────────────────────────────────────────────────┬────┬──────────╮ │ │ │ Std │ │ │Mean│ Deviation│ ├──────────────────────────────────────────────────────────────┼────┼──────────┤ │Age 16 to 25 20. On how many of the thirty days in this │ 5.2│ 6.0│ │group typical month did you have one or more │ │ │ │ alcoholic beverages to drink? │ │ │ │ ╶───────────────────────────────────────────────────────┼────┼──────────┤ │ 26 to 35 20. On how many of the thirty days in this │ 4.7│ 5.9│ │ typical month did you have one or more │ │ │ │ alcoholic beverages to drink? │ │ │ │ ╶───────────────────────────────────────────────────────┼────┼──────────┤ │ 36 to 45 20. On how many of the thirty days in this │ 5.5│ 6.8│ │ typical month did you have one or more │ │ │ │ alcoholic beverages to drink? │ │ │ │ ╶───────────────────────────────────────────────────────┼────┼──────────┤ │ 46 to 55 20. On how many of the thirty days in this │ 5.8│ 7.7│ │ typical month did you have one or more │ │ │ │ alcoholic beverages to drink? │ │ │ │ ╶───────────────────────────────────────────────────────┼────┼──────────┤ │ 56 to 65 20. On how many of the thirty days in this │ 6.3│ 8.2│ │ typical month did you have one or more │ │ │ │ alcoholic beverages to drink? │ │ │ │ ╶───────────────────────────────────────────────────────┼────┼──────────┤ │ 66 or 20. On how many of the thirty days in this │ 7.1│ 9.2│ │ older typical month did you have one or more │ │ │ │ alcoholic beverages to drink? │ │ │ ╰──────────────────────────────────────────────────────────────┴────┴──────────╯ ]) AT_CLEANUP AT_SETUP([CTABLES SLABELS]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /TABLE qn1 [COUNT COLPCT]. CTABLES /TABLE qn1 [COUNT COLPCT] /SLABELS POSITION=ROW. CTABLES /TABLE qn1 [COUNT COLPCT] /SLABELS POSITION=ROW VISIBLE=NO. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭────────────────────────────────────────────────────────────────┬─────┬───────╮ │ │ │ Column│ │ │Count│ % │ ├────────────────────────────────────────────────────────────────┼─────┼───────┤ │ 1. How often do you usually drive a car or Every day │ 4667│ 66.9%│ │other motor vehicle? Several days a week│ 1274│ 18.3%│ │ Once a week or less│ 361│ 5.2%│ │ Only certain times │ 130│ 1.9%│ │ a year │ │ │ │ Never │ 540│ 7.7%│ ╰────────────────────────────────────────────────────────────────┴─────┴───────╯ Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ 1. How often do you usually drive a car or Every day Count │ 4667│ │other motor vehicle? Column │66.9%│ │ % │ │ │ ╶───────────────────────────┼─────┤ │ Several days a week Count │ 1274│ │ Column │18.3%│ │ % │ │ │ ╶───────────────────────────┼─────┤ │ Once a week or less Count │ 361│ │ Column │ 5.2%│ │ % │ │ │ ╶───────────────────────────┼─────┤ │ Only certain times Count │ 130│ │ a year Column │ 1.9%│ │ % │ │ │ ╶───────────────────────────┼─────┤ │ Never Count │ 540│ │ Column │ 7.7%│ │ % │ │ ╰────────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ 1. How often do you usually drive a car or other Every day │ 4667│ │motor vehicle? │66.9%│ │ Several days a week │ 1274│ │ │18.3%│ │ Once a week or less │ 361│ │ │ 5.2%│ │ Only certain times a │ 130│ │ year │ 1.9%│ │ Never │ 540│ │ │ 7.7%│ ╰────────────────────────────────────────────────────────────────────────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES SLABELS with stacking different summaries]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=ALL DISPLAY=NAME /TABLE qn1 [COUNT] + qnd1 [MEAN] + qn17 [UCOUNT] BY qns3a /SLABELS POSITION=ROW. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭─────────────────────────────────────────────────┬───────────╮ │ │ QNS3A │ │ ├────┬──────┤ │ │Male│Female│ ├─────────────────────────────────────────────────┼────┼──────┤ │QN1 Every day Count │2305│ 2362│ │ Unweighted Count│ │ │ │ Mean │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Several days a week Count │ 440│ 834│ │ Unweighted Count│ │ │ │ Mean │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Once a week or less Count │ 125│ 236│ │ Unweighted Count│ │ │ │ Mean │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Only certain times a year Count │ 58│ 72│ │ Unweighted Count│ │ │ │ Mean │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Never Count │ 192│ 348│ │ Unweighted Count│ │ │ │ Mean │ │ │ ├─────────────────────────────────────────────────┼────┼──────┤ │qnd1 Count │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Unweighted Count │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Mean │ 46│ 50│ ├─────────────────────────────────────────────────┼────┼──────┤ │QN17 OR, something else Count │ │ │ │ Unweighted Count│ 1│ 1│ │ Mean │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Beer Count │ │ │ │ Unweighted Count│ 817│ 256│ │ Mean │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Light beer Count │ │ │ │ Unweighted Count│ 406│ 214│ │ Mean │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Wine Count │ │ │ │ Unweighted Count│ 390│ 1028│ │ Mean │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Wine coolers Count │ │ │ │ Unweighted Count│ 20│ 117│ │ Mean │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Hard liquor or mixed drinks Count │ │ │ │ Unweighted Count│ 392│ 496│ │ Mean │ │ │ │ ╶────────────────────────────────────────────┼────┼──────┤ │ Flavored malt drinks Count │ │ │ │ Unweighted Count│ 20│ 63│ │ Mean │ │ │ ╰─────────────────────────────────────────────────┴────┴──────╯ ]) AT_CLEANUP AT_SETUP([CTABLES simple totals]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /TABLE=qn17 /CATEGORIES VARIABLES=qn17 TOTAL=YES LABEL='Number responding'. 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 Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────────────────────────────┼─────┤ │17. When you drink alcoholic beverages, which ONE of OR, something else│ 2│ │the following beverages do you drink MOST OFTEN? Beer │ 1073│ │ Light beer │ 620│ │ Wine │ 1418│ │ Wine coolers │ 137│ │ Hard liquor or │ 888│ │ mixed drinks │ │ │ Flavored malt │ 83│ │ drinks │ │ │ 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 ╭──────────────────────────────────────────────────────┬────┬─────┬──────┬─────╮ │ │ │ │ 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 AT_SETUP([CTABLES subtotals]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/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? │ │ ├────────┬────────┬────────┬────────┬───────┬────────┬────────┤ │ │ │ │ │ │ │ │ 6 or │ │ │ None │ 1 │ 2 │ 3 │ 4 │ 5 │ more │ │ ├────────┼────────┼────────┼────────┼───────┼────────┼────────┤ │ │ │ │ │ │ Column│ │ │ │ │Column %│Column %│Column %│Column %│ % │Column %│Column %│ ├────────────────────────────────────────────────────────┼────────┼────────┼────────┼────────┼───────┼────────┼────────┤ │105b. How likely is it that drivers who have Almost │ .│ 9.5%│ 8.2%│ 12.4%│ 9.9%│ 20.0%│ 23.8%│ │had too much to drink to drive safely will certain │ │ │ │ │ │ │ │ │A. Get 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 AT_SETUP([CTABLES PCOMPUTE]) AT_KEYWORDS([postcompute]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /PCOMPUTE &x=EXPR([3] + [4]) /PCOMPUTE &y=EXPR([4] + [5]) /PPROPERTIES &x LABEL='3+4' FORMAT=COUNT F8.2 /PPROPERTIES &y LABEL=')LABEL[5]+)LABEL[6]' /TABLE=qn105ba [COUNT, ROWPCT] BY qns1 /CATEGORIES VARIABLES=qns1 [1, 2, SUBTOTAL, 3, 4, 5, &x, &y, SUBTOTAL] TOTAL=YES * Adding HIDESOURCECATS=YES for one PPROPERTIES. CTABLES /PCOMPUTE &x=EXPR([3] + [4]) /PCOMPUTE &y=EXPR([4] + [5]) /PPROPERTIES &x LABEL='3+4' FORMAT=COUNT F8.2 /PPROPERTIES &y LABEL=')LABEL[5]+)LABEL[6]' HIDESOURCECATS=YES /TABLE=qn105ba [COUNT, ROWPCT] BY qns1 /CATEGORIES VARIABLES=qns1 [1, 2, SUBTOTAL, 3, 4, 5, &x, &y, SUBTOTAL] TOTAL=YES ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=140], [0], [dnl Custom Tables ╭───────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ │ S1. Including yourself, how many members of this household are age 16 or older? │ │ ├───────────┬───────────┬───────────┬───────────┬──────────┬──────────┬────────────┬──────────┬───────────┬────────────┤ │ │ 1 │ 2 │ Subtotal │ 3 │ 4 │ 5 │ 3+4 │ 4+5 │ Subtotal │ Total │ │ ├─────┬─────┼─────┬─────┼─────┬─────┼─────┬─────┼─────┬────┼─────┬────┼──────┬─────┼─────┬────┼─────┬─────┼─────┬──────┤ │ │ │ │ │ │ │ │ │ │ │ Row│ │ Row│ │ │ │ Row│ │ │ │ │ │ │Count│Row %│Count│Row %│Count│Row %│Count│Row %│Count│ % │Count│ % │ Count│Row %│Count│ % │Count│Row %│Count│ Row %│ ├───────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────┼─────┼────┼──────┼─────┼─────┼────┼─────┼─────┼─────┼──────┤ │105b. How Almost │ 147│30.3%│ 246│50.7%│ 393│81.0%│ 62│12.8%│ 19│3.9%│ 11│2.3%│ 81.00│16.7%│ 30│6.2%│ 92│19.0%│ 485│100.0%│ │likely is certain │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │it that │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │drivers Very │ 384│34.3%│ 552│49.2%│ 936│83.5%│ 120│10.7%│ 51│4.5%│ 14│1.2%│171.00│15.3%│ 65│5.8%│ 185│16.5%│ 1121│100.0%│ │who have likely │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │had too │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │much to Somewhat│ 590│27.8%│ 1249│58.8%│ 1839│86.6%│ 193│ 9.1%│ 72│3.4%│ 20│ .9%│265.00│12.5%│ 92│4.3%│ 285│13.4%│ 2124│100.0%│ │drink to likely │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │drive │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │safely Somewhat│ 278│26.6%│ 647│61.8%│ 925│88.3%│ 84│ 8.0%│ 32│3.1%│ 6│ .6%│116.00│11.1%│ 38│3.6%│ 122│11.7%│ 1047│100.0%│ │will A. unlikely│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Get │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │stopped by Very │ 141│28.5%│ 290│58.7%│ 431│87.2%│ 41│ 8.3%│ 18│3.6%│ 4│ .8%│ 59.00│11.9%│ 22│4.5%│ 63│12.8%│ 494│100.0%│ │the unlikely│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │police? │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴────┴─────┴────┴──────┴─────┴─────┴────┴─────┴─────┴─────┴──────╯ Custom Tables ╭─────────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────╮ │ │ S1. Including yourself, how many members of this household are age 16 or older? │ │ ├───────────┬───────────┬───────────┬───────────┬────────────┬──────────┬───────────┬────────────┤ │ │ 1 │ 2 │ Subtotal │ 3 │ 3+4 │ 4+5 │ Subtotal │ Total │ │ ├─────┬─────┼─────┬─────┼─────┬─────┼─────┬─────┼──────┬─────┼─────┬────┼─────┬─────┼─────┬──────┤ │ │ │ │ │ │ │ │ │ │ │ │ │ Row│ │ │ │ │ │ │Count│Row %│Count│Row %│Count│Row %│Count│Row %│ Count│Row %│Count│ % │Count│Row %│Count│ Row %│ ├─────────────────────────────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼──────┼─────┼─────┼────┼─────┼─────┼─────┼──────┤ │105b. How likely is it that Almost │ 147│30.3%│ 246│50.7%│ 393│81.0%│ 62│12.8%│ 81.00│16.7%│ 30│6.2%│ 92│19.0%│ 485│100.0%│ │drivers who have had too much certain │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │to drink to drive safely will Very │ 384│34.3%│ 552│49.2%│ 936│83.5%│ 120│10.7%│171.00│15.3%│ 65│5.8%│ 185│16.5%│ 1121│100.0%│ │A. Get stopped by the police? likely │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Somewhat │ 590│27.8%│ 1249│58.8%│ 1839│86.6%│ 193│ 9.1%│265.00│12.5%│ 92│4.3%│ 285│13.4%│ 2124│100.0%│ │ likely │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Somewhat │ 278│26.6%│ 647│61.8%│ 925│88.3%│ 84│ 8.0%│116.00│11.1%│ 38│3.6%│ 122│11.7%│ 1047│100.0%│ │ unlikely │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Very │ 141│28.5%│ 290│58.7%│ 431│87.2%│ 41│ 8.3%│ 59.00│11.9%│ 22│4.5%│ 63│12.8%│ 494│100.0%│ │ unlikely │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰─────────────────────────────────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴──────┴─────┴─────┴────┴─────┴─────┴─────┴──────╯ ]) AT_CLEANUP AT_SETUP([CTABLES PCOMPUTE - OTHERNM and MISSING]) AT_KEYWORDS([postcompute]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /PCOMPUTE &x=EXPR(OTHERNM) /PCOMPUTE &y=EXPR(MISSING) /PPROPERTIES &x LABEL='Drivers' /PPROPERTIES &y LABEL='Missing Values 2' /TABLE=qn1 BY qns3a /CATEGORIES VARIABLES=qn1 [OTHERNM, 5, &x, SUBTOTAL='Valid Values', MISSING, SUBTOTAL='Missing Values', &y] ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=140], [0], [dnl Custom Tables ╭──────────────────────────────────────────────────────────────────────────────────────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├──────────────────────────────────────────────────────────────────────────────────────────┼─────┼──────┤ │ 1. How often do you usually drive a car or other motor vehicle? Every day │ 2305│ 2362│ │ Several days a week │ 440│ 834│ │ Once a week or less │ 125│ 236│ │ Only certain times a year│ 58│ 72│ │ Never │ 192│ 348│ │ Drivers │ 2928│ 3504│ │ Valid Values │ 3120│ 3852│ │ Don't know │ 3│ 5│ │ Refused │ 9│ 10│ │ Missing Values │ 12│ 15│ │ Missing Values 2 │ 12│ 15│ ╰──────────────────────────────────────────────────────────────────────────────────────────┴─────┴──────╯ ]) AT_CLEANUP AT_SETUP([CTABLES PCOMPUTE - THRU]) AT_KEYWORDS([postcompute]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /PCOMPUTE &x=EXPR([1 THRU 2]) /PCOMPUTE &y=EXPR([3 THRU 4]) /PCOMPUTE &z=EXPR([5] + MISSING) /PPROPERTIES &x LABEL='Frequent Drivers' /PPROPERTIES &y LABEL='Infrequent Drivers' /PPROPERTIES &z LABEL='Not Drivers or Missing' /TABLE=qn1 BY qns3a /CATEGORIES VARIABLES=qn1 [1 THRU 2, &x, 3 THRU 4, &y, SUBTOTAL='Drivers', 5, MISSING, &z] ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=140], [0], [dnl Custom Tables ╭──────────────────────────────────────────────────────────────────────────────────────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├──────────────────────────────────────────────────────────────────────────────────────────┼─────┼──────┤ │ 1. How often do you usually drive a car or other motor vehicle? Every day │ 2305│ 2362│ │ Several days a week │ 440│ 834│ │ Frequent Drivers │ 2745│ 3196│ │ Once a week or less │ 125│ 236│ │ Only certain times a year│ 58│ 72│ │ Infrequent Drivers │ 183│ 308│ │ Drivers │ 2928│ 3504│ │ Never │ 192│ 348│ │ Don't know │ 3│ 5│ │ Refused │ 9│ 10│ │ Not Drivers or Missing │ 204│ 363│ ╰──────────────────────────────────────────────────────────────────────────────────────────┴─────┴──────╯ ]) AT_CLEANUP dnl I'm not sure that this is the correct behavior (see dnl https://mail.gnu.org/archive/html/pspp-users/2022-07/msg00002.html) dnl but at least this test will notify us if the behavior changes. AT_SETUP([CTABLES intersecting PCOMPUTEs]) AT_KEYWORDS([PCOMPUTE postcompute]) AT_DATA([ctables.sps], [[DATA LIST LIST NOTABLE/x y z. WEIGHT by z. FORMATS ALL (F1.0). VARIABLE LEVEL x y (NOMINAL). BEGIN DATA. 1 4 5 1 5 2 1 6 9 2 4 2 2 5 3 2 6 4 3 4 1 3 5 6 3 6 1 END DATA. CTABLES /PCOMPUTE &a = EXPR([1] + [2]) /PCOMPUTE &b = EXPR([2] + [3]) /PCOMPUTE &c = EXPR([4] * [5]) /PCOMPUTE &d = EXPR([5] * [6]) /TABLE x BY y /CATEGORIES VARIABLES=x [1, &a, 2, &b, 3] /CATEGORIES VARIABLES=y [4, &c, 5, &d, 6]. ]]) AT_CHECK([pspp ctables.sps -O box=unicode], [0], [[ Custom Tables ╭───────────┬─────────────────────────────────────╮ │ │ y │ │ ├─────┬─────────┬─────┬─────────┬─────┤ │ │ 4 │[4] * [5]│ 5 │[5] * [6]│ 6 │ │ ├─────┼─────────┼─────┼─────────┼─────┤ │ │Count│ Count │Count│ Count │Count│ ├───────────┼─────┼─────────┼─────┼─────────┼─────┤ │x 1 │ 5│ 10│ 2│ 18│ 9│ │ [1] + [2]│ 7│ .│ 5│ .│ 13│ │ 2 │ 2│ 6│ 3│ 12│ 4│ │ [2] + [3]│ 3│ .│ 9│ .│ 5│ │ 3 │ 1│ 6│ 6│ 6│ 1│ ╰───────────┴─────┴─────────┴─────┴─────────┴─────╯ ]]) AT_CLEANUP AT_SETUP([CTABLES string and date and time]) weight=1 for gender in F M; do for month in Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec; do for wkday in Sun Mon Tue Wed Thu Fri Sat Sun; do printf "$weight $gender $month $wkday\n" weight=$(expr \( $weight + 3 \) % 7 + 2) done done done > ctables.txt AT_DATA([ctables.sps], [[DATA LIST LIST NOTABLE FILE='ctables.txt' /w (F5.0) gender (A1) fmon (MONTH3) fday (WKDAY3). WEIGHT by w. VARIABLE LEVEL w (SCALE). VARIABLE LEVEL gender fmon fday (NOMINAL). VARIABLE LABEL gender 'Gender' fmon 'Favorite month' fday 'Favorite day of the week'. VALUE LABELS /gender 'M' 'Male' 'F' 'Female'. CTABLES /PCOMPUTE &q2 = EXPR(['APR' THRU 'June']) /PPROPERTIES &q2 LABEL='Q2' /PCOMPUTE &weekend = EXPR(['sun'] + ['Sat']) /PPROPERTIES &weekend LABEL='Weekend' /TABLE fmon BY gender > fday /CATEGORIES VARIABLES=fmon ['JAN', 'FEB', 'Mar', SUBTOTAL="Q1", 4 THRU 6, &q2, 'JUL' THRU 'sep', SUBTOTAL="Q3", OTHERNM, SUBTOTAL='Q4'] /CATEGORIES VARIABLES=gender ['M', 'F'] /CATEGORIES VARIABLE=fday ['Sun', 2 THRU 6, 'Sat', &weekend] TOTAL=YES /SLABELS VISIBLE=NO. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [0], [dnl Custom Tables ╭──────────────────┬───────────────────────────────────────────────────────────────────────────────────╮ │ │ Gender │ │ ├─────────────────────────────────────────┬─────────────────────────────────────────┤ │ │ Male │ Female │ │ ├─────────────────────────────────────────┼─────────────────────────────────────────┤ │ │ Favorite day of the week │ Favorite day of the week │ │ ├───┬───┬───┬───┬───┬───┬───┬───────┬─────┼───┬───┬───┬───┬───┬───┬───┬───────┬─────┤ │ │SUN│MON│TUE│WED│THU│FRI│SAT│Weekend│Total│SUN│MON│TUE│WED│THU│FRI│SAT│Weekend│Total│ ├──────────────────┼───┼───┼───┼───┼───┼───┼───┼───────┼─────┼───┼───┼───┼───┼───┼───┼───┼───────┼─────┤ │Favorite month JAN│ 10│ 3│ 8│ 6│ 4│ 2│ 7│ 17│ 40│ 9│ 6│ 4│ 2│ 7│ 5│ 3│ 12│ 36│ │ FEB│ 6│ 8│ 6│ 4│ 2│ 7│ 5│ 11│ 38│ 12│ 4│ 2│ 7│ 5│ 3│ 8│ 20│ 41│ │ MAR│ 16│ 6│ 4│ 2│ 7│ 5│ 3│ 19│ 43│ 8│ 2│ 7│ 5│ 3│ 8│ 6│ 14│ 39│ │ Q1 │ 32│ 17│ 18│ 12│ 13│ 14│ 15│ │ │ 29│ 12│ 13│ 14│ 15│ 16│ 17│ │ │ │ APR│ 12│ 4│ 2│ 7│ 5│ 3│ 8│ 20│ 41│ 4│ 7│ 5│ 3│ 8│ 6│ 4│ 8│ 37│ │ MAY│ 8│ 2│ 7│ 5│ 3│ 8│ 6│ 14│ 39│ 14│ 5│ 3│ 8│ 6│ 4│ 2│ 16│ 42│ │ JUN│ 4│ 7│ 5│ 3│ 8│ 6│ 4│ 8│ 37│ 10│ 3│ 8│ 6│ 4│ 2│ 7│ 17│ 40│ │ Q2 │ 24│ 13│ 14│ 15│ 16│ 17│ 18│ .│ │ 28│ 15│ 16│ 17│ 18│ 12│ 13│ .│ │ │ JUL│ 14│ 5│ 3│ 8│ 6│ 4│ 2│ 16│ 42│ 6│ 8│ 6│ 4│ 2│ 7│ 5│ 11│ 38│ │ AUG│ 10│ 3│ 8│ 6│ 4│ 2│ 7│ 17│ 40│ 16│ 6│ 4│ 2│ 7│ 5│ 3│ 19│ 43│ │ SEP│ 6│ 8│ 6│ 4│ 2│ 7│ 5│ 11│ 38│ 12│ 4│ 2│ 7│ 5│ 3│ 8│ 20│ 41│ │ Q3 │ 54│ 29│ 31│ 33│ 28│ 30│ 32│ │ │ 62│ 33│ 28│ 30│ 32│ 27│ 29│ │ │ │ OCT│ 16│ 6│ 4│ 2│ 7│ 5│ 3│ 19│ 43│ 8│ 2│ 7│ 5│ 3│ 8│ 6│ 14│ 39│ │ NOV│ 12│ 4│ 2│ 7│ 5│ 3│ 8│ 20│ 41│ 4│ 7│ 5│ 3│ 8│ 6│ 4│ 8│ 37│ │ DEC│ 8│ 2│ 7│ 5│ 3│ 8│ 6│ 14│ 39│ 14│ 5│ 3│ 8│ 6│ 4│ 2│ 16│ 42│ │ Q4 │ 36│ 12│ 13│ 14│ 15│ 16│ 17│ │ │ 26│ 14│ 15│ 16│ 17│ 18│ 12│ │ │ ╰──────────────────┴───┴───┴───┴───┴───┴───┴───┴───────┴─────┴───┴───┴───┴───┴───┴───┴───┴───────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES CLABELS]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /TABLE AgeGroup BY qns3a. CTABLES /TABLE AgeGroup BY qns3a /CLABELS ROWLABELS=OPPOSITE. CTABLES /TABLE AgeGroup BY qns3a /CLABELS COLLABELS=OPPOSITE. CTABLES /TABLE AgeGroup BY qns3a /CLABELS ROWLABELS=LAYER. CTABLES /TABLE AgeGroup BY qns3a /CLABELS COLLABELS=LAYER. ]]) AT_CHECK([pspp ctables.sps --table-look="$builddir"/all-layers.stt -O box=unicode -O width=120], [0], [dnl Custom Tables ╭───────────────────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├───────────────────────┼─────┼──────┤ │Age group 15 or younger│ 0│ 0│ │ 16 to 25 │ 594│ 505│ │ 26 to 35 │ 476│ 491│ │ 36 to 45 │ 489│ 548│ │ 46 to 55 │ 526│ 649│ │ 56 to 65 │ 516│ 731│ │ 66 or older │ 531│ 943│ ╰───────────────────────┴─────┴──────╯ Custom Tables ╭───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ │ S3a. GENDER: │ │ ├──────────────────────────────────────────────────────┬───────────────────────────────────────────────────────┤ │ │ Male │ Female │ │ ├─────────┬───────┬──────┬──────┬──────┬───────┬───────┼──────────┬──────┬───────┬──────┬──────┬──────┬────────┤ │ │ 15 or │ 16 to │ 26 to│ 36 to│ 46 to│ 56 to │ 66 or │ 15 or │ 16 to│ 26 to │ 36 to│ 46 to│ 56 to│ 66 or │ │ │ younger │ 25 │ 35 │ 45 │ 55 │ 65 │ older │ younger │ 25 │ 35 │ 45 │ 55 │ 65 │ older │ │ ├─────────┼───────┼──────┼──────┼──────┼───────┼───────┼──────────┼──────┼───────┼──────┼──────┼──────┼────────┤ │ │ Count │ Count │ Count│ Count│ Count│ Count │ Count │ Count │ Count│ Count │ Count│ Count│ Count│ Count │ ├───────┼─────────┼───────┼──────┼──────┼──────┼───────┼───────┼──────────┼──────┼───────┼──────┼──────┼──────┼────────┤ │Age │ 0│ 594│ 476│ 489│ 526│ 516│ 531│ 0│ 505│ 491│ 548│ 649│ 731│ 943│ │group │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────┴─────────┴───────┴──────┴──────┴──────┴───────┴───────┴──────────┴──────┴───────┴──────┴──────┴──────┴────────╯ Custom Tables ╭──────────────────────────────┬────────────╮ │ │S3a. GENDER:│ │ ├────────────┤ │ │ Count │ ├──────────────────────────────┼────────────┤ │Age group 15 or younger Male │ 0│ │ Female│ 0│ │ ╶────────────────────┼────────────┤ │ 16 to 25 Male │ 594│ │ Female│ 505│ │ ╶────────────────────┼────────────┤ │ 26 to 35 Male │ 476│ │ Female│ 491│ │ ╶────────────────────┼────────────┤ │ 36 to 45 Male │ 489│ │ Female│ 548│ │ ╶────────────────────┼────────────┤ │ 46 to 55 Male │ 526│ │ Female│ 649│ │ ╶────────────────────┼────────────┤ │ 56 to 65 Male │ 516│ │ Female│ 731│ │ ╶────────────────────┼────────────┤ │ 66 or older Male │ 531│ │ Female│ 943│ ╰──────────────────────────────┴────────────╯ Custom Tables 15 or younger ╭─────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├─────────┼─────┼──────┤ │Age group│ 0│ 0│ ╰─────────┴─────┴──────╯ Custom Tables 16 to 25 ╭─────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├─────────┼─────┼──────┤ │Age group│ 594│ 505│ ╰─────────┴─────┴──────╯ Custom Tables 26 to 35 ╭─────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├─────────┼─────┼──────┤ │Age group│ 476│ 491│ ╰─────────┴─────┴──────╯ Custom Tables 36 to 45 ╭─────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├─────────┼─────┼──────┤ │Age group│ 489│ 548│ ╰─────────┴─────┴──────╯ Custom Tables 46 to 55 ╭─────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├─────────┼─────┼──────┤ │Age group│ 526│ 649│ ╰─────────┴─────┴──────╯ Custom Tables 56 to 65 ╭─────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├─────────┼─────┼──────┤ │Age group│ 516│ 731│ ╰─────────┴─────┴──────╯ Custom Tables 66 or older ╭─────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├─────────┼─────┼──────┤ │Age group│ 531│ 943│ ╰─────────┴─────┴──────╯ Custom Tables Male ╭───────────────────────┬────────────╮ │ │S3a. GENDER:│ │ ├────────────┤ │ │ Count │ ├───────────────────────┼────────────┤ │Age group 15 or younger│ 0│ │ 16 to 25 │ 594│ │ 26 to 35 │ 476│ │ 36 to 45 │ 489│ │ 46 to 55 │ 526│ │ 56 to 65 │ 516│ │ 66 or older │ 531│ ╰───────────────────────┴────────────╯ Custom Tables Female ╭───────────────────────┬────────────╮ │ │S3a. GENDER:│ │ ├────────────┤ │ │ Count │ ├───────────────────────┼────────────┤ │Age group 15 or younger│ 0│ │ 16 to 25 │ 505│ │ 26 to 35 │ 491│ │ 36 to 45 │ 548│ │ 46 to 55 │ 649│ │ 56 to 65 │ 731│ │ 66 or older │ 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, COLPCT, COLPCT.VALIDN, COLPCT.TOTALN, TOTALS[COUNT, COLPCT, COLPCT.VALIDN, COLPCT.TOTALN, VALIDN, TOTALN]] /CATEGORIES VARIABLES=ALL TOTAL=YES. CTABLES /TABLE x[COUNT, COLPCT, COLPCT.VALIDN, COLPCT.TOTALN, TOTALS[COUNT, COLPCT, COLPCT.VALIDN, COLPCT.TOTALN, VALIDN, TOTALN]] /CATEGORIES VARIABLES=ALL TOTAL=YES MISSING=INCLUDE. CTABLES /TABLE x BY y[COUNT, COLPCT, COLPCT.VALIDN, COLPCT.TOTALN, ROWPCT, ROWPCT.VALIDN, ROWPCT.TOTALN, TOTALS[COUNT, COLPCT, COLPCT.VALIDN, COLPCT.TOTALN, ROWPCT, ROWPCT.VALIDN, ROWPCT.TOTALN, VALIDN, TOTALN]] /CATEGORIES VARIABLES=ALL TOTAL=YES /SLABELS POSITION=ROW. CTABLES /TABLE x BY y[COUNT, COLPCT, COLPCT.VALIDN, COLPCT.TOTALN, ROWPCT, ROWPCT.VALIDN, ROWPCT.TOTALN, TOTALS[COUNT, COLPCT, COLPCT.VALIDN, COLPCT.TOTALN, ROWPCT, ROWPCT.VALIDN, ROWPCT.TOTALN, VALIDN, TOTALN]] /CATEGORIES VARIABLES=ALL TOTAL=YES MISSING=INCLUDE /SLABELS POSITION=ROW. CTABLES /TABLE x BY y[COUNT, COLPCT, COLPCT.VALIDN, COLPCT.TOTALN, ROWPCT, ROWPCT.VALIDN, ROWPCT.TOTALN, TOTALS[COUNT, COLPCT, COLPCT.VALIDN, COLPCT.TOTALN, ROWPCT, ROWPCT.VALIDN, ROWPCT.TOTALN, VALIDN, TOTALN]] /CATEGORIES VARIABLES=x [1, 2, 3, 4] TOTAL=YES /CATEGORIES VARIABLES=y [1, 3, 4, 5] TOTAL=YES /SLABELS POSITION=ROW. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [0], [dnl Custom Tables ╭───────┬─────┬────────┬────────────────┬────────────────┬───────┬───────╮ │ │Count│Column %│Column Valid N %│Column Total N %│Valid N│Total N│ ├───────┼─────┼────────┼────────────────┼────────────────┼───────┼───────┤ │x 3.00 │ 6│ 33.3%│ 33.3%│ 16.7%│ │ │ │ 4.00 │ 6│ 33.3%│ 33.3%│ 16.7%│ │ │ │ 5.00 │ 6│ 33.3%│ 33.3%│ 16.7%│ │ │ │ Total│ 18│ 100.0%│ 100.0%│ 100.0%│ 18│ 36│ ╰───────┴─────┴────────┴────────────────┴────────────────┴───────┴───────╯ dnl Note that Column Total N % doesn't add up to 100 because missing dnl values are included in the total but not shown as a category and this dnl is expected behavior. Custom Tables ╭───────┬─────┬────────┬────────────────┬────────────────┬───────┬───────╮ │ │Count│Column %│Column Valid N %│Column Total N %│Valid N│Total N│ ├───────┼─────┼────────┼────────────────┼────────────────┼───────┼───────┤ │x 1.00 │ 6│ 20.0%│ .0%│ 16.7%│ │ │ │ 2.00 │ 6│ 20.0%│ .0%│ 16.7%│ │ │ │ 3.00 │ 6│ 20.0%│ 33.3%│ 16.7%│ │ │ │ 4.00 │ 6│ 20.0%│ 33.3%│ 16.7%│ │ │ │ 5.00 │ 6│ 20.0%│ 33.3%│ 16.7%│ │ │ │ Total│ 30│ 100.0%│ 100.0%│ 100.0%│ 18│ 36│ ╰───────┴─────┴────────┴────────────────┴────────────────┴───────┴───────╯ dnl Note that Column Total N % doesn't add up to 100 because system-missing dnl values are included in the total but not shown as a category and this dnl is expected behavior. Custom Tables ╭────────────────────────┬───────────────────────────╮ │ │ y │ │ ├──────┬──────┬──────┬──────┤ │ │ 1.00 │ 4.00 │ 5.00 │ Total│ ├────────────────────────┼──────┼──────┼──────┼──────┤ │x 3.00 Count │ 1│ 1│ 1│ 3│ │ Column % │ 33.3%│ 33.3%│ 33.3%│ .│ │ Column Valid N %│ 33.3%│ 33.3%│ 33.3%│ .│ │ Column Total N %│ 33.3%│ 33.3%│ 33.3%│ .│ │ Row % │ 33.3%│ 33.3%│ 33.3%│100.0%│ │ Row Valid N % │ 33.3%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ 3│ │ Total N │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┤ │ 4.00 Count │ 1│ 1│ 1│ 3│ │ Column % │ 33.3%│ 33.3%│ 33.3%│ .│ │ Column Valid N %│ 33.3%│ 33.3%│ 33.3%│ .│ │ Column Total N %│ 33.3%│ 33.3%│ 33.3%│ .│ │ Row % │ 33.3%│ 33.3%│ 33.3%│100.0%│ │ Row Valid N % │ 33.3%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ 3│ │ Total N │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┤ │ 5.00 Count │ 1│ 1│ 1│ 3│ │ Column % │ 33.3%│ 33.3%│ 33.3%│ .│ │ Column Valid N %│ 33.3%│ 33.3%│ 33.3%│ .│ │ Column Total N %│ 33.3%│ 33.3%│ 33.3%│ .│ │ Row % │ 33.3%│ 33.3%│ 33.3%│100.0%│ │ Row Valid N % │ 33.3%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ 3│ │ Total N │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┤ │ Total Count │ 3│ 3│ 3│ 9│ │ Column % │100.0%│100.0%│100.0%│ .│ │ Column Valid N %│100.0%│100.0%│100.0%│ .│ │ Column Total N %│100.0%│100.0%│100.0%│ .│ │ Row % │ .│ .│ .│ .│ │ Row Valid N % │ .│ .│ .│ .│ │ Row Total N % │ .│ .│ .│ .│ │ Valid N │ 3│ 3│ 3│ 9│ │ Total N │ 3│ 3│ 3│ 18│ ╰────────────────────────┴──────┴──────┴──────┴──────╯ Custom Tables ╭────────────────────────┬─────────────────────────────────────────╮ │ │ y │ │ ├──────┬──────┬──────┬──────┬──────┬──────┤ │ │ 1.00 │ 2.00 │ 3.00 │ 4.00 │ 5.00 │ Total│ ├────────────────────────┼──────┼──────┼──────┼──────┼──────┼──────┤ │x 1.00 Count │ 1│ 1│ 1│ 1│ 1│ 5│ │ Column % │ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ .│ │ Column Valid N %│ 20.0%│ .│ .│ 20.0%│ 20.0%│ .│ │ Column Total N %│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ .│ │ Row % │ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│100.0%│ │ Row Valid N % │ 33.3%│ .0%│ .0%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ │ │ 3│ │ Total N │ │ │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┼──────┼──────┤ │ 2.00 Count │ 1│ 1│ 1│ 1│ 1│ 5│ │ Column % │ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ .│ │ Column Valid N %│ 20.0%│ .│ .│ 20.0%│ 20.0%│ .│ │ Column Total N %│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ .│ │ Row % │ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│100.0%│ │ Row Valid N % │ 33.3%│ .0%│ .0%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ │ │ 3│ │ Total N │ │ │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┼──────┼──────┤ │ 3.00 Count │ 1│ 1│ 1│ 1│ 1│ 5│ │ Column % │ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ .│ │ Column Valid N %│ 20.0%│ .│ .│ 20.0%│ 20.0%│ .│ │ Column Total N %│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ .│ │ Row % │ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│100.0%│ │ Row Valid N % │ 33.3%│ .0%│ .0%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ │ │ 3│ │ Total N │ │ │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┼──────┼──────┤ │ 4.00 Count │ 1│ 1│ 1│ 1│ 1│ 5│ │ Column % │ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ .│ │ Column Valid N %│ 20.0%│ .│ .│ 20.0%│ 20.0%│ .│ │ Column Total N %│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ .│ │ Row % │ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│100.0%│ │ Row Valid N % │ 33.3%│ .0%│ .0%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ │ │ 3│ │ Total N │ │ │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┼──────┼──────┤ │ 5.00 Count │ 1│ 1│ 1│ 1│ 1│ 5│ │ Column % │ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ .│ │ Column Valid N %│ 20.0%│ .│ .│ 20.0%│ 20.0%│ .│ │ Column Total N %│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│ .│ │ Row % │ 20.0%│ 20.0%│ 20.0%│ 20.0%│ 20.0%│100.0%│ │ Row Valid N % │ 33.3%│ .0%│ .0%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ │ │ 3│ │ Total N │ │ │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┼──────┼──────┤ │ Total Count │ 5│ 5│ 5│ 5│ 5│ 25│ │ Column % │100.0%│100.0%│100.0%│100.0%│100.0%│ .│ │ Column Valid N %│100.0%│ .│ .│100.0%│100.0%│ .│ │ Column Total N %│100.0%│100.0%│100.0%│100.0%│100.0%│ .│ │ Row % │ .│ .│ .│ .│ .│ .│ │ Row Valid N % │ .│ .│ .│ .│ .│ .│ │ Row Total N % │ .│ .│ .│ .│ .│ .│ │ Valid N │ 5│ 0│ 0│ 5│ 5│ 15│ │ Total N │ 5│ 5│ 5│ 5│ 5│ 30│ ╰────────────────────────┴──────┴──────┴──────┴──────┴──────┴──────╯ Custom Tables ╭────────────────────────┬──────────────────────────────────╮ │ │ y │ │ ├──────┬──────┬──────┬──────┬──────┤ │ │ 1.00 │ 3.00 │ 4.00 │ 5.00 │ Total│ ├────────────────────────┼──────┼──────┼──────┼──────┼──────┤ │x 1.00 Count │ 1│ 1│ 1│ 1│ 4│ │ Column % │ 25.0%│ 25.0%│ 25.0%│ 25.0%│ .│ │ Column Valid N %│ 25.0%│ .│ 25.0%│ 25.0%│ .│ │ Column Total N %│ 25.0%│ 25.0%│ 25.0%│ 25.0%│ .│ │ Row % │ 25.0%│ 25.0%│ 25.0%│ 25.0%│100.0%│ │ Row Valid N % │ 33.3%│ .0%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ │ 3│ │ Total N │ │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┼──────┤ │ 2.00 Count │ 1│ 1│ 1│ 1│ 4│ │ Column % │ 25.0%│ 25.0%│ 25.0%│ 25.0%│ .│ │ Column Valid N %│ 25.0%│ .│ 25.0%│ 25.0%│ .│ │ Column Total N %│ 25.0%│ 25.0%│ 25.0%│ 25.0%│ .│ │ Row % │ 25.0%│ 25.0%│ 25.0%│ 25.0%│100.0%│ │ Row Valid N % │ 33.3%│ .0%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ │ 3│ │ Total N │ │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┼──────┤ │ 3.00 Count │ 1│ 1│ 1│ 1│ 4│ │ Column % │ 25.0%│ 25.0%│ 25.0%│ 25.0%│ .│ │ Column Valid N %│ 25.0%│ .│ 25.0%│ 25.0%│ .│ │ Column Total N %│ 25.0%│ 25.0%│ 25.0%│ 25.0%│ .│ │ Row % │ 25.0%│ 25.0%│ 25.0%│ 25.0%│100.0%│ │ Row Valid N % │ 33.3%│ .0%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ │ 3│ │ Total N │ │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┼──────┤ │ 4.00 Count │ 1│ 1│ 1│ 1│ 4│ │ Column % │ 25.0%│ 25.0%│ 25.0%│ 25.0%│ .│ │ Column Valid N %│ 25.0%│ .│ 25.0%│ 25.0%│ .│ │ Column Total N %│ 25.0%│ 25.0%│ 25.0%│ 25.0%│ .│ │ Row % │ 25.0%│ 25.0%│ 25.0%│ 25.0%│100.0%│ │ Row Valid N % │ 33.3%│ .0%│ 33.3%│ 33.3%│100.0%│ │ Row Total N % │ 16.7%│ 16.7%│ 16.7%│ 16.7%│100.0%│ │ Valid N │ │ │ │ │ 3│ │ Total N │ │ │ │ │ 6│ │ ╶──────────────────────┼──────┼──────┼──────┼──────┼──────┤ │ Total Count │ 4│ 4│ 4│ 4│ 16│ │ Column % │100.0%│100.0%│100.0%│100.0%│ .│ │ Column Valid N %│100.0%│ .│100.0%│100.0%│ .│ │ Column Total N %│100.0%│100.0%│100.0%│100.0%│ .│ │ Row % │ .│ .│ .│ .│ .│ │ Row Valid N % │ .│ .│ .│ .│ .│ │ Row Total N % │ .│ .│ .│ .│ .│ │ Valid N │ 4│ 0│ 4│ 4│ 12│ │ Total N │ 4│ 4│ 4│ 4│ 24│ ╰────────────────────────┴──────┴──────┴──────┴──────┴──────╯ ]) AT_CLEANUP AT_SETUP([CTABLES SMISSING=LISTWISE]) AT_KEYWORDS([SMISSING LISTWISE]) AT_DATA([ctables.sps], [[DATA LIST LIST NOTABLE/x y z. BEGIN DATA. 1 . 40 1 10 50 1 20 60 1 . . 1 30 . END DATA. VARIABLE LEVEL x (NOMINAL). CTABLES /TABLE (y + z) > x. CTABLES /SMISSING LISTWISE /TABLE (y + z) > x. * The following doesn't come out as listwise because the tables are separate, not linked by an > operator. CTABLES /SMISSING LISTWISE /TABLE (y > x) + (z > x). ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [0], [dnl Custom Tables ╭────────┬─────╮ │ │ Mean│ ├────────┼─────┤ │y x 1.00│20.00│ ├────────┼─────┤ │z x 1.00│50.00│ ╰────────┴─────╯ Custom Tables ╭────────┬─────╮ │ │ Mean│ ├────────┼─────┤ │y x 1.00│15.00│ ├────────┼─────┤ │z x 1.00│55.00│ ╰────────┴─────╯ Custom Tables ╭────────┬─────╮ │ │ Mean│ ├────────┼─────┤ │y x 1.00│20.00│ ├────────┼─────┤ │z x 1.00│50.00│ ╰────────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES VLABELS - variables on different axes]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=qns3a qnd5a DISPLAY=DEFAULT /TABLE qnd5a BY qns3a. CTABLES /VLABELS VARIABLES=qns3a qnd5a DISPLAY=NAME /TABLE qnd5a BY qns3a. CTABLES /VLABELS VARIABLES=qns3a qnd5a DISPLAY=LABEL /TABLE qnd5a BY qns3a. CTABLES /VLABELS VARIABLES=qns3a qnd5a DISPLAY=BOTH /TABLE qnd5a BY qns3a. CTABLES /VLABELS VARIABLES=qns3a qnd5a DISPLAY=NONE /TABLE qnd5a BY qns3a. ]]) AT_CHECK([pspp ctables.sps -O box=unicode], [0], [dnl Custom Tables ╭────────────────────────────────────────────────────────────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├────────────────────────────────────────────────────────────────┼─────┼──────┤ │D5a. What would you say is your primary Cuban │ 13│ 7│ │ethnic background? Mexican │ 175│ 136│ │ Spanish │ 20│ 28│ │ South American │ 21│ 13│ │ Central American │ 27│ 25│ │ Puerto Rican, OR │ 37│ 41│ │ Something else │ 35│ 33│ │ Multiple - cannot │ 2│ 5│ │ choose one │ │ │ ╰────────────────────────────────────────────────────────────────┴─────┴──────╯ Custom Tables ╭──────────────────────────────────┬────────────╮ │ │ QNS3A │ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├──────────────────────────────────┼─────┼──────┤ │QND5A Cuban │ 13│ 7│ │ Mexican │ 175│ 136│ │ Spanish │ 20│ 28│ │ South American │ 21│ 13│ │ Central American │ 27│ 25│ │ Puerto Rican, OR │ 37│ 41│ │ Something else │ 35│ 33│ │ Multiple - cannot choose one│ 2│ 5│ ╰──────────────────────────────────┴─────┴──────╯ Custom Tables ╭────────────────────────────────────────────────────────────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├────────────────────────────────────────────────────────────────┼─────┼──────┤ │D5a. What would you say is your primary Cuban │ 13│ 7│ │ethnic background? Mexican │ 175│ 136│ │ Spanish │ 20│ 28│ │ South American │ 21│ 13│ │ Central American │ 27│ 25│ │ Puerto Rican, OR │ 37│ 41│ │ Something else │ 35│ 33│ │ Multiple - cannot │ 2│ 5│ │ choose one │ │ │ ╰────────────────────────────────────────────────────────────────┴─────┴──────╯ Custom Tables ╭────────────────────────────────────────────────────────────┬────────────────╮ │ │ QNS3A S3a. │ │ │ GENDER: │ │ ├───────┬────────┤ │ │ Male │ Female │ │ ├───────┼────────┤ │ │ Count │ Count │ ├────────────────────────────────────────────────────────────┼───────┼────────┤ │QND5A D5a. What would you say is your Cuban │ 13│ 7│ │primary ethnic background? Mexican │ 175│ 136│ │ Spanish │ 20│ 28│ │ South American │ 21│ 13│ │ Central American │ 27│ 25│ │ Puerto Rican, OR │ 37│ 41│ │ Something else │ 35│ 33│ │ Multiple - cannot │ 2│ 5│ │ choose one │ │ │ ╰────────────────────────────────────────────────────────────┴───────┴────────╯ Custom Tables ╭────────────────────────────┬─────┬──────╮ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├────────────────────────────┼─────┼──────┤ │Cuban │ 13│ 7│ │Mexican │ 175│ 136│ │Spanish │ 20│ 28│ │South American │ 21│ 13│ │Central American │ 27│ 25│ │Puerto Rican, OR │ 37│ 41│ │Something else │ 35│ 33│ │Multiple - cannot choose one│ 2│ 5│ ╰────────────────────────────┴─────┴──────╯ ]) AT_CLEANUP AT_SETUP([CTABLES VLABELS - stacked variables]) AT_KEYWORDS([stack stacking]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=qns3a DISPLAY=NAME /TABLE qnd5a + qns3a. CTABLES /VLABELS VARIABLES=qnd5a DISPLAY=NAME /TABLE qnd5a + qns3a. CTABLES /VLABELS VARIABLES=qns3a DISPLAY=NONE /TABLE qnd5a + qns3a. CTABLES /VLABELS VARIABLES=qnd5a DISPLAY=NONE /TABLE qnd5a + qns3a. CTABLES /VLABELS VARIABLES=qns3a qnd5a DISPLAY=NONE /TABLE qnd5a + qns3a. ]]) AT_CHECK([pspp ctables.sps -O box=unicode], [0], [dnl Custom Tables ╭───────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├───────────────────────────────────────────────────────────────────────┼─────┤ │D5a. What would you say is your primary ethnic Cuban │ 20│ │background? Mexican │ 311│ │ Spanish │ 48│ │ South American │ 34│ │ Central American │ 52│ │ Puerto Rican, OR │ 78│ │ Something else │ 68│ │ Multiple - cannot │ 7│ │ choose one │ │ ├───────────────────────────────────────────────────────────────────────┼─────┤ │QNS3A Male │ 3132│ │ Female │ 3867│ ╰───────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭─────────────────────────────────────────┬─────╮ │ │Count│ ├─────────────────────────────────────────┼─────┤ │QND5A Cuban │ 20│ │ Mexican │ 311│ │ Spanish │ 48│ │ South American │ 34│ │ Central American │ 52│ │ Puerto Rican, OR │ 78│ │ Something else │ 68│ │ Multiple - cannot choose one│ 7│ ├─────────────────────────────────────────┼─────┤ │S3a. GENDER: Male │ 3132│ │ Female │ 3867│ ╰─────────────────────────────────────────┴─────╯ Custom Tables ╭───────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├───────────────────────────────────────────────────────────────────────┼─────┤ │D5a. What would you say is your primary ethnic Cuban │ 20│ │background? Mexican │ 311│ │ Spanish │ 48│ │ South American │ 34│ │ Central American │ 52│ │ Puerto Rican, OR │ 78│ │ Something else │ 68│ │ Multiple - cannot │ 7│ │ choose one │ │ ├───────────────────────────────────────────────────────────────────────┼─────┤ │Male │ 3132│ ├───────────────────────────────────────────────────────────────────────┼─────┤ │Female │ 3867│ ╰───────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭─────────────────────────────┬─────╮ │ │Count│ ├─────────────────────────────┼─────┤ │Cuban │ 20│ ├─────────────────────────────┼─────┤ │Mexican │ 311│ ├─────────────────────────────┼─────┤ │Spanish │ 48│ ├─────────────────────────────┼─────┤ │South American │ 34│ ├─────────────────────────────┼─────┤ │Central American │ 52│ ├─────────────────────────────┼─────┤ │Puerto Rican, OR │ 78│ ├─────────────────────────────┼─────┤ │Something else │ 68│ ├─────────────────────────────┼─────┤ │Multiple - cannot choose one │ 7│ ├─────────────────────────────┼─────┤ │S3a. GENDER: Male │ 3132│ │ Female │ 3867│ ╰─────────────────────────────┴─────╯ Custom Tables ╭────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────┼─────┤ │Cuban │ 20│ │Mexican │ 311│ │Spanish │ 48│ │South American │ 34│ │Central American │ 52│ │Puerto Rican, OR │ 78│ │Something else │ 68│ │Multiple - cannot choose one│ 7│ │Male │ 3132│ │Female │ 3867│ ╰────────────────────────────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES VLABELS - nested variables]) AT_KEYWORDS([nest nesting]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=qns3a DISPLAY=NAME /TABLE qnd5a > qns3a. CTABLES /VLABELS VARIABLES=qnd5a DISPLAY=NAME /TABLE qnd5a > qns3a. CTABLES /VLABELS VARIABLES=qns3a DISPLAY=NONE /TABLE qnd5a > qns3a. CTABLES /VLABELS VARIABLES=qnd5a DISPLAY=NONE /TABLE qnd5a > qns3a. CTABLES /VLABELS VARIABLES=qns3a qnd5a DISPLAY=NONE /TABLE qnd5a > qns3a. ]]) AT_CHECK([pspp ctables.sps -O box=unicode], [0], [dnl Custom Tables ╭───────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├───────────────────────────────────────────────────────────────────────┼─────┤ │D5a. What would you say is your Cuban QNS3A Male │ 13│ │primary ethnic background? Female│ 7│ │ ╶─────────────────────────────────┼─────┤ │ Mexican QNS3A Male │ 175│ │ Female│ 136│ │ ╶─────────────────────────────────┼─────┤ │ Spanish QNS3A Male │ 20│ │ Female│ 28│ │ ╶─────────────────────────────────┼─────┤ │ South American QNS3A Male │ 21│ │ Female│ 13│ │ ╶─────────────────────────────────┼─────┤ │ Central American QNS3A Male │ 27│ │ Female│ 25│ │ ╶─────────────────────────────────┼─────┤ │ Puerto Rican, OR QNS3A Male │ 37│ │ Female│ 41│ │ ╶─────────────────────────────────┼─────┤ │ Something else QNS3A Male │ 35│ │ Female│ 33│ │ ╶─────────────────────────────────┼─────┤ │ Multiple - cannot QNS3A Male │ 2│ │ choose one Female│ 5│ ╰───────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭──────────────────────────────────────────────────────┬─────╮ │ │Count│ ├──────────────────────────────────────────────────────┼─────┤ │QND5A Cuban S3a. GENDER: Male │ 13│ │ Female│ 7│ │ ╶────────────────────────────────────────────────┼─────┤ │ Mexican S3a. GENDER: Male │ 175│ │ Female│ 136│ │ ╶────────────────────────────────────────────────┼─────┤ │ Spanish S3a. GENDER: Male │ 20│ │ Female│ 28│ │ ╶────────────────────────────────────────────────┼─────┤ │ South American S3a. GENDER: Male │ 21│ │ Female│ 13│ │ ╶────────────────────────────────────────────────┼─────┤ │ Central American S3a. GENDER: Male │ 27│ │ Female│ 25│ │ ╶────────────────────────────────────────────────┼─────┤ │ Puerto Rican, OR S3a. GENDER: Male │ 37│ │ Female│ 41│ │ ╶────────────────────────────────────────────────┼─────┤ │ Something else S3a. GENDER: Male │ 35│ │ Female│ 33│ │ ╶────────────────────────────────────────────────┼─────┤ │ Multiple - cannot choose one S3a. GENDER: Male │ 2│ │ Female│ 5│ ╰──────────────────────────────────────────────────────┴─────╯ Custom Tables ╭───────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├───────────────────────────────────────────────────────────────────────┼─────┤ │D5a. What would you say is your primary Cuban Male │ 13│ │ethnic background? Female│ 7│ │ ╶────────────────────────────┼─────┤ │ Mexican Male │ 175│ │ Female│ 136│ │ ╶────────────────────────────┼─────┤ │ Spanish Male │ 20│ │ Female│ 28│ │ ╶────────────────────────────┼─────┤ │ South American Male │ 21│ │ Female│ 13│ │ ╶────────────────────────────┼─────┤ │ Central American Male │ 27│ │ Female│ 25│ │ ╶────────────────────────────┼─────┤ │ Puerto Rican, OR Male │ 37│ │ Female│ 41│ │ ╶────────────────────────────┼─────┤ │ Something else Male │ 35│ │ Female│ 33│ │ ╶────────────────────────────┼─────┤ │ Multiple - cannot Male │ 2│ │ choose one Female│ 5│ ╰───────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────┼─────┤ │Cuban S3a. GENDER: Male │ 13│ │ Female│ 7│ ├────────────────────────────────────────────────┼─────┤ │Mexican S3a. GENDER: Male │ 175│ │ Female│ 136│ ├────────────────────────────────────────────────┼─────┤ │Spanish S3a. GENDER: Male │ 20│ │ Female│ 28│ ├────────────────────────────────────────────────┼─────┤ │South American S3a. GENDER: Male │ 21│ │ Female│ 13│ ├────────────────────────────────────────────────┼─────┤ │Central American S3a. GENDER: Male │ 27│ │ Female│ 25│ ├────────────────────────────────────────────────┼─────┤ │Puerto Rican, OR S3a. GENDER: Male │ 37│ │ Female│ 41│ ├────────────────────────────────────────────────┼─────┤ │Something else S3a. GENDER: Male │ 35│ │ Female│ 33│ ├────────────────────────────────────────────────┼─────┤ │Multiple - cannot choose one S3a. GENDER: Male │ 2│ │ Female│ 5│ ╰────────────────────────────────────────────────┴─────╯ Custom Tables ╭───────────────────────────────────┬─────╮ │ │Count│ ├───────────────────────────────────┼─────┤ │Cuban Male │ 13│ │ Female│ 7│ ├───────────────────────────────────┼─────┤ │Mexican Male │ 175│ │ Female│ 136│ ├───────────────────────────────────┼─────┤ │Spanish Male │ 20│ │ Female│ 28│ ├───────────────────────────────────┼─────┤ │South American Male │ 21│ │ Female│ 13│ ├───────────────────────────────────┼─────┤ │Central American Male │ 27│ │ Female│ 25│ ├───────────────────────────────────┼─────┤ │Puerto Rican, OR Male │ 37│ │ Female│ 41│ ├───────────────────────────────────┼─────┤ │Something else Male │ 35│ │ Female│ 33│ ├───────────────────────────────────┼─────┤ │Multiple - cannot choose one Male │ 2│ │ Female│ 5│ ╰───────────────────────────────────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES FORMAT EMPTY]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /FORMAT EMPTY=ZERO /TABLE qnd5a BY qnd5. CTABLES /FORMAT EMPTY=BLANK /TABLE qnd5a BY qnd5. CTABLES /FORMAT EMPTY='n/a' /TABLE qnd5a BY qnd5. ]]) AT_CHECK([pspp ctables.sps -O box=unicode], [0], [dnl Custom Tables ╭─────────────────────────────────────────────┬───────────────────────────────╮ │ │ D5. ETHNICITY: Are you of │ │ │ Hispanic or Latino origin or │ │ │ descent? │ │ ├───────────────┬───────────────┤ │ │ Yes │ No │ │ ├───────────────┼───────────────┤ │ │ Count │ Count │ ├─────────────────────────────────────────────┼───────────────┼───────────────┤ │D5a. What would you say is Cuban │ 20│ 0│ │your primary ethnic Mexican │ 311│ 0│ │background? Spanish │ 48│ 0│ │ South American │ 34│ 0│ │ Central American│ 52│ 0│ │ Puerto Rican, OR│ 78│ 0│ │ Something else │ 68│ 0│ │ Multiple - │ 7│ 0│ │ cannot choose │ │ │ │ one │ │ │ ╰─────────────────────────────────────────────┴───────────────┴───────────────╯ Custom Tables ╭─────────────────────────────────────────────┬───────────────────────────────╮ │ │ D5. ETHNICITY: Are you of │ │ │ Hispanic or Latino origin or │ │ │ descent? │ │ ├───────────────┬───────────────┤ │ │ Yes │ No │ │ ├───────────────┼───────────────┤ │ │ Count │ Count │ ├─────────────────────────────────────────────┼───────────────┼───────────────┤ │D5a. What would you say is Cuban │ 20│ │ │your primary ethnic Mexican │ 311│ │ │background? Spanish │ 48│ │ │ South American │ 34│ │ │ Central American│ 52│ │ │ Puerto Rican, OR│ 78│ │ │ Something else │ 68│ │ │ Multiple - │ 7│ │ │ cannot choose │ │ │ │ one │ │ │ ╰─────────────────────────────────────────────┴───────────────┴───────────────╯ Custom Tables ╭─────────────────────────────────────────────┬───────────────────────────────╮ │ │ D5. ETHNICITY: Are you of │ │ │ Hispanic or Latino origin or │ │ │ descent? │ │ ├───────────────┬───────────────┤ │ │ Yes │ No │ │ ├───────────────┼───────────────┤ │ │ Count │ Count │ ├─────────────────────────────────────────────┼───────────────┼───────────────┤ │D5a. What would you say is Cuban │ 20│n/a │ │your primary ethnic Mexican │ 311│n/a │ │background? Spanish │ 48│n/a │ │ South American │ 34│n/a │ │ Central American│ 52│n/a │ │ Puerto Rican, OR│ 78│n/a │ │ Something else │ 68│n/a │ │ Multiple - │ 7│n/a │ │ cannot choose │ │ │ │ one │ │ │ ╰─────────────────────────────────────────────┴───────────────┴───────────────╯ ]) AT_CLEANUP AT_SETUP([CTABLES FORMAT MISSING]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /FORMAT MISSING='(no data)' /TABLE qnd5a[COLPCT] BY qnd5. ]]) AT_CHECK([pspp ctables.sps -O box=unicode], [0], [dnl Custom Tables ╭─────────────────────────────────────────────┬───────────────────────────────╮ │ │ D5. ETHNICITY: Are you of │ │ │ Hispanic or Latino origin or │ │ │ descent? │ │ ├───────────────┬───────────────┤ │ │ Yes │ No │ │ ├───────────────┼───────────────┤ │ │ Column % │ Column % │ ├─────────────────────────────────────────────┼───────────────┼───────────────┤ │D5a. What would you say is Cuban │ 3.2%│(no data) │ │your primary ethnic Mexican │ 50.3%│(no data) │ │background? Spanish │ 7.8%│(no data) │ │ South American │ 5.5%│(no data) │ │ Central American│ 8.4%│(no data) │ │ Puerto Rican, OR│ 12.6%│(no data) │ │ Something else │ 11.0%│(no data) │ │ Multiple - │ 1.1%│(no data) │ │ cannot choose │ │ │ │ one │ │ │ ╰─────────────────────────────────────────────┴───────────────┴───────────────╯ ]) AT_CLEANUP AT_SETUP([CTABLES HIDESMALLCOUNTS]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /TABLE qn38[c][COUNT, COLPCT]. CTABLES /HIDESMALLCOUNTS /TABLE qn38[c][COUNT, COLPCT]. CTABLES /HIDESMALLCOUNTS COUNT=10 /TABLE qn38[c][COUNT, COLPCT]. ]]) AT_CHECK([pspp ctables.sps -O box=unicode], [0], [dnl Custom Tables ╭──────────────────────────────────────────────────────────────┬─────┬────────╮ │ │Count│Column %│ ├──────────────────────────────────────────────────────────────┼─────┼────────┤ │38. How many drinks did you have on that Less than one│ 7│ .5%│ │occasion? 1 │ 491│ 34.9%│ │ 2 │ 462│ 32.9%│ │ 3 │ 229│ 16.3%│ │ 4 │ 82│ 5.8%│ │ 5 │ 56│ 4.0%│ │ 6 │ 32│ 2.3%│ │ 7 │ 9│ .6%│ │ 8 │ 8│ .6%│ │ 9 │ 4│ .3%│ │ 10 │ 6│ .4%│ │ 11 │ 2│ .1%│ │ 12 │ 5│ .4%│ │ 14 │ 1│ .1%│ │ 15 │ 1│ .1%│ │ 18 │ 1│ .1%│ │ 20 │ 4│ .3%│ │ 25 │ 1│ .1%│ │ 30 │ 3│ .2%│ │ 60 │ 1│ .1%│ │ 99+ │ 0│ .0%│ ╰──────────────────────────────────────────────────────────────┴─────┴────────╯ Custom Tables ╭──────────────────────────────────────────────────────────────┬─────┬────────╮ │ │Count│Column %│ ├──────────────────────────────────────────────────────────────┼─────┼────────┤ │38. How many drinks did you have on that Less than one│ 7│ .5%│ │occasion? 1 │ 491│ 34.9%│ │ 2 │ 462│ 32.9%│ │ 3 │ 229│ 16.3%│ │ 4 │ 82│ 5.8%│ │ 5 │ 56│ 4.0%│ │ 6 │ 32│ 2.3%│ │ 7 │ 9│ .6%│ │ 8 │ 8│ .6%│ │ 9 │<5 │ .3%│ │ 10 │ 6│ .4%│ │ 11 │<5 │ .1%│ │ 12 │ 5│ .4%│ │ 14 │<5 │ .1%│ │ 15 │<5 │ .1%│ │ 18 │<5 │ .1%│ │ 20 │<5 │ .3%│ │ 25 │<5 │ .1%│ │ 30 │<5 │ .2%│ │ 60 │<5 │ .1%│ │ 99+ │<5 │ .0%│ ╰──────────────────────────────────────────────────────────────┴─────┴────────╯ Custom Tables ╭──────────────────────────────────────────────────────────────┬─────┬────────╮ │ │Count│Column %│ ├──────────────────────────────────────────────────────────────┼─────┼────────┤ │38. How many drinks did you have on that Less than one│<10 │ .5%│ │occasion? 1 │ 491│ 34.9%│ │ 2 │ 462│ 32.9%│ │ 3 │ 229│ 16.3%│ │ 4 │ 82│ 5.8%│ │ 5 │ 56│ 4.0%│ │ 6 │ 32│ 2.3%│ │ 7 │<10 │ .6%│ │ 8 │<10 │ .6%│ │ 9 │<10 │ .3%│ │ 10 │<10 │ .4%│ │ 11 │<10 │ .1%│ │ 12 │<10 │ .4%│ │ 14 │<10 │ .1%│ │ 15 │<10 │ .1%│ │ 18 │<10 │ .1%│ │ 20 │<10 │ .3%│ │ 25 │<10 │ .1%│ │ 30 │<10 │ .2%│ │ 60 │<10 │ .1%│ │ 99+ │<10 │ .0%│ ╰──────────────────────────────────────────────────────────────┴─────┴────────╯ ]) AT_CLEANUP AT_SETUP([CTABLES FORMAT MINCOLWIDTH MAXCOLWIDTH]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /FORMAT MINCOLWIDTH=1 MAXCOLWIDTH=2 UNITS=INCHES /TABLE BY qns3a. ]]) AT_CHECK([pspp ctables.sps -o - -O box=unicode -o pspp.spv], [0], [dnl Custom Tables ╭────────────╮ │S3a. GENDER:│ ├─────┬──────┤ │ Male│Female│ ├─────┼──────┤ │Count│ Count│ ├─────┼──────┤ │ 3132│ 3867│ ╰─────┴──────╯ ]) AT_CHECK([pspp-output get-table-look pspp.spv pspp.stt]) AT_CHECK([sed 's/ /\n/g' pspp.stt | grep ColumnWidth | sort], [0], [dnl maximumColumnWidth="192" minimumColumnWidth="96" ]) AT_CLEANUP AT_SETUP([CTABLES special formats]) AT_KEYWORDS([NEGPAREN NEQUAL PAREN PCTPAREN]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. COMPUTE x = qnd3 - 4. CTABLES /TABLE x[MINIMUM NEGPAREN8.1, MINIMUM NEQUAL8.1, MINIMUM PAREN8.1, MINIMUM PCTPAREN8.1, MAXIMUM NEGPAREN8.1, MAXIMUM NEQUAL8.1, MAXIMUM PAREN8.1, MAXIMUM PCTPAREN8.1]. ]]) AT_CHECK([pspp ctables.sps -O box=unicode], [0], [dnl Custom Tables ╭─┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────╮ │ │Minimum│Minimum│Minimum│Minimum│Maximum│Maximum│Maximum│Maximum│ ├─┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ │x│(3.0) │N=-3.0 │(-3.0) │(-3.0%)│8.0 │N=8.0 │(8.0) │(8.0%) │ ╰─┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────╯ ]) AT_CLEANUP AT_SETUP([CTABLES TITLES]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=qn1 DISPLAY=NONE /TABLE ((qn1[c][COUNT])) BY qns3a[c] > qnd5 /TITLES TITLE='How often do you drive?' 'second line of title' CAPTION='Generated )TIME on )DATE' CORNER=')TABLE'. ]]) AT_CHECK([pspp ctables.sps -O box=unicode | sed 's/..:..:../HH:MM:SS/ s&../../..&MM/DD/YY&'], [0], [dnl How often do you drive? second line of title ╭───────────────────────────────────┬─────────────────────────────────────────╮ │ │ S3a. GENDER: │ │ ├────────────────────┬────────────────────┤ │ │ Male │ Female │ │ ├────────────────────┼────────────────────┤ │ │ D5. ETHNICITY: Are │ D5. ETHNICITY: Are │ │ │ you of Hispanic or │ you of Hispanic or │ │ │ Latino origin or │ Latino origin or │ │( ( 1. How often do you usually │ descent? │ descent? │ │drive a car or other motor ├─────────┬──────────┼─────────┬──────────┤ │vehicle?) ) BY S3a. GENDER: > D5. │ Yes │ No │ Yes │ No │ │ETHNICITY: Are you of Hispanic or ├─────────┼──────────┼─────────┼──────────┤ │Latino origin or descent? │ Count │ Count │ Count │ Count │ ├───────────────────────────────────┼─────────┼──────────┼─────────┼──────────┤ │Every day │ 218│ 2066│ 166│ 2175│ │Several days a week │ 44│ 391│ 45│ 782│ │Once a week or less │ 16│ 109│ 12│ 223│ │Only certain times a year │ 15│ 41│ 11│ 61│ │Never │ 39│ 150│ 56│ 278│ ╰───────────────────────────────────┴─────────┴──────────┴─────────┴──────────╯ Generated HH:MM:SS on MM/DD/YY ]) AT_CLEANUP AT_SETUP([CTABLES area definitions]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=ALL DISPLAY=NAME /TABLE qn61 > qn57 BY qnd7a > qn86 + qn64b BY qns3a[TABLEID, LAYERID, SUBTABLEID] /SLABELS POSITION=ROW /TABLE qn61 > qn57 BY qnd7a > qn86 + qn64b BY qns3a[ROWID, LAYERROWID] /SLABELS POSITION=ROW /TABLE qn61 > qn57 BY qnd7a > qn86 + qn64b BY qns3a[COLID, LAYERCOLID] /SLABELS POSITION=ROW. ]]) AT_CHECK([pspp ctables.sps --table-look="$builddir"/all-layers.stt -O box=unicode -O width=80], [0], [dnl Custom Tables Male ╭─────────────────────────────┬─────────────┬──────╮ │ │ QND7A │ QN64B│ │ ├──────┬──────┼───┬──┤ │ │ Yes │ No │ │ │ │ ├──────┼──────┤ │ │ │ │ QN86 │ QN86 │ │ │ │ ├───┬──┼───┬──┤ │ │ │ │Yes│No│Yes│No│Yes│No│ ├─────────────────────────────┼───┼──┼───┼──┼───┼──┤ │QN61 Yes QN57 Yes Table ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Layer ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Subtable ID│ 1│ 1│ 2│ 2│ 3│ 3│ │ ╶───────────────┼───┼──┼───┼──┼───┼──┤ │ No Table ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Layer ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Subtable ID│ 1│ 1│ 2│ 2│ 3│ 3│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┤ │ No QN57 Yes Table ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Layer ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Subtable ID│ 4│ 4│ 5│ 5│ 6│ 6│ │ ╶───────────────┼───┼──┼───┼──┼───┼──┤ │ No Table ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Layer ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Subtable ID│ 4│ 4│ 5│ 5│ 6│ 6│ ╰─────────────────────────────┴───┴──┴───┴──┴───┴──╯ Custom Tables Female ╭─────────────────────────────┬─────────────┬──────╮ │ │ QND7A │ QN64B│ │ ├──────┬──────┼───┬──┤ │ │ Yes │ No │ │ │ │ ├──────┼──────┤ │ │ │ │ QN86 │ QN86 │ │ │ │ ├───┬──┼───┬──┤ │ │ │ │Yes│No│Yes│No│Yes│No│ ├─────────────────────────────┼───┼──┼───┼──┼───┼──┤ │QN61 Yes QN57 Yes Table ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Layer ID │ 3│ 3│ 3│ 3│ 4│ 4│ │ Subtable ID│ 7│ 7│ 8│ 8│ 9│ 9│ │ ╶───────────────┼───┼──┼───┼──┼───┼──┤ │ No Table ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Layer ID │ 3│ 3│ 3│ 3│ 4│ 4│ │ Subtable ID│ 7│ 7│ 8│ 8│ 9│ 9│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┤ │ No QN57 Yes Table ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Layer ID │ 3│ 3│ 3│ 3│ 4│ 4│ │ Subtable ID│ 10│10│ 11│11│ 12│12│ │ ╶───────────────┼───┼──┼───┼──┼───┼──┤ │ No Table ID │ 1│ 1│ 1│ 1│ 2│ 2│ │ Layer ID │ 3│ 3│ 3│ 3│ 4│ 4│ │ Subtable ID│ 10│10│ 11│11│ 12│12│ ╰─────────────────────────────┴───┴──┴───┴──┴───┴──╯ Custom Tables Male ╭──────────────────────────────┬─────────────┬──────╮ │ │ QND7A │ QN64B│ │ ├──────┬──────┼───┬──┤ │ │ Yes │ No │ │ │ │ ├──────┼──────┤ │ │ │ │ QN86 │ QN86 │ │ │ │ ├───┬──┼───┬──┤ │ │ │ │Yes│No│Yes│No│Yes│No│ ├──────────────────────────────┼───┼──┼───┼──┼───┼──┤ │QN61 Yes QN57 Yes Row ID │ 1│ 1│ 2│ 2│ 3│ 3│ │ Layer Row ID│ 1│ 1│ 1│ 1│ 2│ 2│ │ ╶────────────────┼───┼──┼───┼──┼───┼──┤ │ No Row ID │ 4│ 4│ 5│ 5│ 6│ 6│ │ Layer Row ID│ 3│ 3│ 3│ 3│ 4│ 4│ │ ╶─────────────────────────┼───┼──┼───┼──┼───┼──┤ │ No QN57 Yes Row ID │ 7│ 7│ 8│ 8│ 9│ 9│ │ Layer Row ID│ 5│ 5│ 5│ 5│ 6│ 6│ │ ╶────────────────┼───┼──┼───┼──┼───┼──┤ │ No Row ID │ 10│10│ 11│11│ 12│12│ │ Layer Row ID│ 7│ 7│ 7│ 7│ 8│ 8│ ╰──────────────────────────────┴───┴──┴───┴──┴───┴──╯ Custom Tables Female ╭──────────────────────────────┬─────────────┬──────╮ │ │ QND7A │ QN64B│ │ ├──────┬──────┼───┬──┤ │ │ Yes │ No │ │ │ │ ├──────┼──────┤ │ │ │ │ QN86 │ QN86 │ │ │ │ ├───┬──┼───┬──┤ │ │ │ │Yes│No│Yes│No│Yes│No│ ├──────────────────────────────┼───┼──┼───┼──┼───┼──┤ │QN61 Yes QN57 Yes Row ID │ 13│13│ 14│14│ 15│15│ │ Layer Row ID│ 9│ 9│ 9│ 9│ 10│10│ │ ╶────────────────┼───┼──┼───┼──┼───┼──┤ │ No Row ID │ 16│16│ 17│17│ 18│18│ │ Layer Row ID│ 11│11│ 11│11│ 12│12│ │ ╶─────────────────────────┼───┼──┼───┼──┼───┼──┤ │ No QN57 Yes Row ID │ 19│19│ 20│20│ 21│21│ │ Layer Row ID│ 13│13│ 13│13│ 14│14│ │ ╶────────────────┼───┼──┼───┼──┼───┼──┤ │ No Row ID │ 22│22│ 23│23│ 24│24│ │ Layer Row ID│ 15│15│ 15│15│ 16│16│ ╰──────────────────────────────┴───┴──┴───┴──┴───┴──╯ Custom Tables Male ╭─────────────────────────────────┬─────────────┬──────╮ │ │ QND7A │ QN64B│ │ ├──────┬──────┼───┬──┤ │ │ Yes │ No │ │ │ │ ├──────┼──────┤ │ │ │ │ QN86 │ QN86 │ │ │ │ ├───┬──┼───┬──┤ │ │ │ │Yes│No│Yes│No│Yes│No│ ├─────────────────────────────────┼───┼──┼───┼──┼───┼──┤ │QN61 Yes QN57 Yes Column ID │ 1│ 2│ 3│ 4│ 5│ 6│ │ Layer Column ID│ 1│ 2│ 3│ 4│ 5│ 6│ │ ╶───────────────────┼───┼──┼───┼──┼───┼──┤ │ No Column ID │ 1│ 2│ 3│ 4│ 5│ 6│ │ Layer Column ID│ 1│ 2│ 3│ 4│ 5│ 6│ │ ╶────────────────────────────┼───┼──┼───┼──┼───┼──┤ │ No QN57 Yes Column ID │ 7│ 8│ 9│10│ 11│12│ │ Layer Column ID│ 1│ 2│ 3│ 4│ 5│ 6│ │ ╶───────────────────┼───┼──┼───┼──┼───┼──┤ │ No Column ID │ 7│ 8│ 9│10│ 11│12│ │ Layer Column ID│ 1│ 2│ 3│ 4│ 5│ 6│ ╰─────────────────────────────────┴───┴──┴───┴──┴───┴──╯ Custom Tables Female ╭─────────────────────────────────┬─────────────┬──────╮ │ │ QND7A │ QN64B│ │ ├──────┬──────┼───┬──┤ │ │ Yes │ No │ │ │ │ ├──────┼──────┤ │ │ │ │ QN86 │ QN86 │ │ │ │ ├───┬──┼───┬──┤ │ │ │ │Yes│No│Yes│No│Yes│No│ ├─────────────────────────────────┼───┼──┼───┼──┼───┼──┤ │QN61 Yes QN57 Yes Column ID │ 13│14│ 15│16│ 17│18│ │ Layer Column ID│ 7│ 8│ 9│10│ 11│12│ │ ╶───────────────────┼───┼──┼───┼──┼───┼──┤ │ No Column ID │ 13│14│ 15│16│ 17│18│ │ Layer Column ID│ 7│ 8│ 9│10│ 11│12│ │ ╶────────────────────────────┼───┼──┼───┼──┼───┼──┤ │ No QN57 Yes Column ID │ 19│20│ 21│22│ 23│24│ │ Layer Column ID│ 7│ 8│ 9│10│ 11│12│ │ ╶───────────────────┼───┼──┼───┼──┼───┼──┤ │ No Column ID │ 19│20│ 21│22│ 23│24│ │ Layer Column ID│ 7│ 8│ 9│10│ 11│12│ ╰─────────────────────────────────┴───┴──┴───┴──┴───┴──╯ ]) AT_CLEANUP AT_SETUP([CTABLES area definitions with CLABELS ROWLABELS=OPPOSITE]) AT_KEYWORDS([ROWLABELS OPPOSITE]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=ALL DISPLAY=NAME /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[TABLEID, LAYERID, SUBTABLEID] /SLABELS POSITION=ROW /CLABELS ROWLABELS=OPPOSITE /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[ROWID, LAYERROWID] /SLABELS POSITION=ROW /CLABELS ROWLABELS=OPPOSITE /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[COLID, LAYERCOLID] /SLABELS POSITION=ROW /CLABELS ROWLABELS=OPPOSITE. ]]) AT_CHECK([pspp ctables.sps --table-look="$builddir"/all-layers.stt -O box=unicode -O width=120], [0], [dnl Custom Tables Male ╭──────────────────────────────────┬───────────────────────────────────────────────────────╮ │ │ QN27 │ │ ├───────────────────────────┬───────────────────────────┤ │ │ Yes │ No │ │ ├───────────────────────────┼───────────────────────────┤ │ │ QND7A │ QND7A │ │ ├─────────────┬─────────────┼─────────────┬─────────────┤ │ │ Yes │ No │ Yes │ No │ │ ├─────────────┼─────────────┼─────────────┼─────────────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ │ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Subtable ID│ 1│ 1│ 2│ 2│ 3│ 3│ 4│ 4│ 5│ 5│ 6│ 6│ 7│ 7│ 8│ 8│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Subtable ID│ 1│ 1│ 2│ 2│ 3│ 3│ 4│ 4│ 5│ 5│ 6│ 6│ 7│ 7│ 8│ 8│ │ ╶─────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Subtable ID│ 9│ 9│ 10│10│ 11│11│ 12│12│ 13│13│ 14│14│ 15│15│ 16│16│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Subtable ID│ 9│ 9│ 10│10│ 11│11│ 12│12│ 13│13│ 14│14│ 15│15│ 16│16│ ╰──────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Female ╭──────────────────────────────────┬───────────────────────────────────────────────────────╮ │ │ QN27 │ │ ├───────────────────────────┬───────────────────────────┤ │ │ Yes │ No │ │ ├───────────────────────────┼───────────────────────────┤ │ │ QND7A │ QND7A │ │ ├─────────────┬─────────────┼─────────────┬─────────────┤ │ │ Yes │ No │ Yes │ No │ │ ├─────────────┼─────────────┼─────────────┼─────────────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ │ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ │ Subtable ID│ 17│17│ 18│18│ 19│19│ 20│20│ 21│21│ 22│22│ 23│23│ 24│24│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ │ Subtable ID│ 17│17│ 18│18│ 19│19│ 20│20│ 21│21│ 22│22│ 23│23│ 24│24│ │ ╶─────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ │ Subtable ID│ 25│25│ 26│26│ 27│27│ 28│28│ 29│29│ 30│30│ 31│31│ 32│32│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ │ Subtable ID│ 25│25│ 26│26│ 27│27│ 28│28│ 29│29│ 30│30│ 31│31│ 32│32│ ╰──────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Male ╭───────────────────────────────────┬───────────────────────────────────────────────────────╮ │ │ QN27 │ │ ├───────────────────────────┬───────────────────────────┤ │ │ Yes │ No │ │ ├───────────────────────────┼───────────────────────────┤ │ │ QND7A │ QND7A │ │ ├─────────────┬─────────────┼─────────────┬─────────────┤ │ │ Yes │ No │ Yes │ No │ │ ├─────────────┼─────────────┼─────────────┼─────────────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ │ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ ├───────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Row ID │ 1│ 1│ 2│ 2│ 3│ 3│ 4│ 4│ 5│ 5│ 6│ 6│ 7│ 7│ 8│ 8│ │ Layer Row ID│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 9│ 9│ 10│10│ 11│11│ 12│12│ 13│13│ 14│14│ 15│15│ 16│16│ │ Layer Row ID│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ │ ╶──────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Row ID │ 17│17│ 18│18│ 19│19│ 20│20│ 21│21│ 22│22│ 23│23│ 24│24│ │ Layer Row ID│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 25│25│ 26│26│ 27│27│ 28│28│ 29│29│ 30│30│ 31│31│ 32│32│ │ Layer Row ID│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ ╰───────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Female ╭───────────────────────────────────┬───────────────────────────────────────────────────────╮ │ │ QN27 │ │ ├───────────────────────────┬───────────────────────────┤ │ │ Yes │ No │ │ ├───────────────────────────┼───────────────────────────┤ │ │ QND7A │ QND7A │ │ ├─────────────┬─────────────┼─────────────┬─────────────┤ │ │ Yes │ No │ Yes │ No │ │ ├─────────────┼─────────────┼─────────────┼─────────────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ │ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ ├───────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Row ID │ 33│33│ 34│34│ 35│35│ 36│36│ 37│37│ 38│38│ 39│39│ 40│40│ │ Layer Row ID│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 41│41│ 42│42│ 43│43│ 44│44│ 45│45│ 46│46│ 47│47│ 48│48│ │ Layer Row ID│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ │ ╶──────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Row ID │ 49│49│ 50│50│ 51│51│ 52│52│ 53│53│ 54│54│ 55│55│ 56│56│ │ Layer Row ID│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 57│57│ 58│58│ 59│59│ 60│60│ 61│61│ 62│62│ 63│63│ 64│64│ │ Layer Row ID│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ ╰───────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Male ╭──────────────────────────────────────┬───────────────────────────────────────────────────────╮ │ │ QN27 │ │ ├───────────────────────────┬───────────────────────────┤ │ │ Yes │ No │ │ ├───────────────────────────┼───────────────────────────┤ │ │ QND7A │ QND7A │ │ ├─────────────┬─────────────┼─────────────┬─────────────┤ │ │ Yes │ No │ Yes │ No │ │ ├─────────────┼─────────────┼─────────────┼─────────────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ │ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Column ID │ 1│ 2│ 3│ 4│ 5│ 6│ 7│ 8│ 9│10│ 11│12│ 13│14│ 15│16│ │ Layer Column ID│ 1│ 2│ 3│ 4│ 5│ 6│ 7│ 8│ 9│10│ 11│12│ 13│14│ 15│16│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 1│ 2│ 3│ 4│ 5│ 6│ 7│ 8│ 9│10│ 11│12│ 13│14│ 15│16│ │ Layer Column ID│ 1│ 2│ 3│ 4│ 5│ 6│ 7│ 8│ 9│10│ 11│12│ 13│14│ 15│16│ │ ╶─────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Column ID │ 17│18│ 19│20│ 21│22│ 23│24│ 25│26│ 27│28│ 29│30│ 31│32│ │ Layer Column ID│ 1│ 2│ 3│ 4│ 5│ 6│ 7│ 8│ 9│10│ 11│12│ 13│14│ 15│16│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 17│18│ 19│20│ 21│22│ 23│24│ 25│26│ 27│28│ 29│30│ 31│32│ │ Layer Column ID│ 1│ 2│ 3│ 4│ 5│ 6│ 7│ 8│ 9│10│ 11│12│ 13│14│ 15│16│ ╰──────────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Female ╭──────────────────────────────────────┬───────────────────────────────────────────────────────╮ │ │ QN27 │ │ ├───────────────────────────┬───────────────────────────┤ │ │ Yes │ No │ │ ├───────────────────────────┼───────────────────────────┤ │ │ QND7A │ QND7A │ │ ├─────────────┬─────────────┼─────────────┬─────────────┤ │ │ Yes │ No │ Yes │ No │ │ ├─────────────┼─────────────┼─────────────┼─────────────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ │ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Column ID │ 33│34│ 35│36│ 37│38│ 39│40│ 41│42│ 43│44│ 45│46│ 47│48│ │ Layer Column ID│ 17│18│ 19│20│ 21│22│ 23│24│ 25│26│ 27│28│ 29│30│ 31│32│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 33│34│ 35│36│ 37│38│ 39│40│ 41│42│ 43│44│ 45│46│ 47│48│ │ Layer Column ID│ 17│18│ 19│20│ 21│22│ 23│24│ 25│26│ 27│28│ 29│30│ 31│32│ │ ╶─────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Column ID │ 49│50│ 51│52│ 53│54│ 55│56│ 57│58│ 59│60│ 61│62│ 63│64│ │ Layer Column ID│ 17│18│ 19│20│ 21│22│ 23│24│ 25│26│ 27│28│ 29│30│ 31│32│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 49│50│ 51│52│ 53│54│ 55│56│ 57│58│ 59│60│ 61│62│ 63│64│ │ Layer Column ID│ 17│18│ 19│20│ 21│22│ 23│24│ 25│26│ 27│28│ 29│30│ 31│32│ ╰──────────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ ]) AT_CLEANUP AT_SETUP([CTABLES area definitions with CLABELS COLLABELS=OPPOSITE]) AT_KEYWORDS([COLLABELS OPPOSITE]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=ALL DISPLAY=NAME /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[TABLEID, LAYERID, SUBTABLEID] /SLABELS POSITION=ROW /CLABELS COLLABELS=OPPOSITE /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[ROWID, LAYERROWID] /SLABELS POSITION=ROW /CLABELS COLLABELS=OPPOSITE /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[COLID, LAYERCOLID] /SLABELS POSITION=ROW /CLABELS COLLABELS=OPPOSITE. ]]) AT_CHECK([pspp ctables.sps --table-look="$builddir"/all-layers.stt -O box=unicode -O width=120], [0], [dnl Custom Tables Male ╭──────────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 1│ 1│ 2│ 2│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 1│ 1│ 2│ 2│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 3│ 3│ 4│ 4│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 3│ 3│ 4│ 4│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 5│ 5│ 6│ 6│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 5│ 5│ 6│ 6│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 7│ 7│ 8│ 8│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 7│ 7│ 8│ 8│ │ ╶─────────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 9│ 9│ 10│ 10│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 9│ 9│ 10│ 10│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 11│ 11│ 12│ 12│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 11│ 11│ 12│ 12│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 13│ 13│ 14│ 14│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 13│ 13│ 14│ 14│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 15│ 15│ 16│ 16│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 15│ 15│ 16│ 16│ ╰──────────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Female ╭──────────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 17│ 17│ 18│ 18│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 17│ 17│ 18│ 18│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 19│ 19│ 20│ 20│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 19│ 19│ 20│ 20│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 21│ 21│ 22│ 22│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 21│ 21│ 22│ 22│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 23│ 23│ 24│ 24│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 23│ 23│ 24│ 24│ │ ╶─────────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 25│ 25│ 26│ 26│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 25│ 25│ 26│ 26│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 27│ 27│ 28│ 28│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 27│ 27│ 28│ 28│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 29│ 29│ 30│ 30│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 29│ 29│ 30│ 30│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 31│ 31│ 32│ 32│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 31│ 31│ 32│ 32│ ╰──────────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Male ╭───────────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├───────────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Yes Row ID │ 1│ 1│ 3│ 3│ │ Layer Row ID│ 1│ 1│ 1│ 1│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 2│ 2│ 4│ 4│ │ Layer Row ID│ 2│ 2│ 2│ 2│ │ ╶────────────────────┼────┼────┼────┼────┤ │ No Yes Row ID │ 5│ 5│ 7│ 7│ │ Layer Row ID│ 3│ 3│ 3│ 3│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 6│ 6│ 8│ 8│ │ Layer Row ID│ 4│ 4│ 4│ 4│ │ ╶─────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Row ID │ 9│ 9│ 11│ 11│ │ Layer Row ID│ 5│ 5│ 5│ 5│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 10│ 10│ 12│ 12│ │ Layer Row ID│ 6│ 6│ 6│ 6│ │ ╶────────────────────┼────┼────┼────┼────┤ │ No Yes Row ID │ 13│ 13│ 15│ 15│ │ Layer Row ID│ 7│ 7│ 7│ 7│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 14│ 14│ 16│ 16│ │ Layer Row ID│ 8│ 8│ 8│ 8│ │ ╶──────────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Yes Row ID │ 17│ 17│ 19│ 19│ │ Layer Row ID│ 9│ 9│ 9│ 9│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 18│ 18│ 20│ 20│ │ Layer Row ID│ 10│ 10│ 10│ 10│ │ ╶────────────────────┼────┼────┼────┼────┤ │ No Yes Row ID │ 21│ 21│ 23│ 23│ │ Layer Row ID│ 11│ 11│ 11│ 11│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 22│ 22│ 24│ 24│ │ Layer Row ID│ 12│ 12│ 12│ 12│ │ ╶─────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Row ID │ 25│ 25│ 27│ 27│ │ Layer Row ID│ 13│ 13│ 13│ 13│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 26│ 26│ 28│ 28│ │ Layer Row ID│ 14│ 14│ 14│ 14│ │ ╶────────────────────┼────┼────┼────┼────┤ │ No Yes Row ID │ 29│ 29│ 31│ 31│ │ Layer Row ID│ 15│ 15│ 15│ 15│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 30│ 30│ 32│ 32│ │ Layer Row ID│ 16│ 16│ 16│ 16│ ╰───────────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Female ╭───────────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├───────────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Yes Row ID │ 33│ 33│ 35│ 35│ │ Layer Row ID│ 17│ 17│ 17│ 17│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 34│ 34│ 36│ 36│ │ Layer Row ID│ 18│ 18│ 18│ 18│ │ ╶────────────────────┼────┼────┼────┼────┤ │ No Yes Row ID │ 37│ 37│ 39│ 39│ │ Layer Row ID│ 19│ 19│ 19│ 19│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 38│ 38│ 40│ 40│ │ Layer Row ID│ 20│ 20│ 20│ 20│ │ ╶─────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Row ID │ 41│ 41│ 43│ 43│ │ Layer Row ID│ 21│ 21│ 21│ 21│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 42│ 42│ 44│ 44│ │ Layer Row ID│ 22│ 22│ 22│ 22│ │ ╶────────────────────┼────┼────┼────┼────┤ │ No Yes Row ID │ 45│ 45│ 47│ 47│ │ Layer Row ID│ 23│ 23│ 23│ 23│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 46│ 46│ 48│ 48│ │ Layer Row ID│ 24│ 24│ 24│ 24│ │ ╶──────────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Yes Row ID │ 49│ 49│ 51│ 51│ │ Layer Row ID│ 25│ 25│ 25│ 25│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 50│ 50│ 52│ 52│ │ Layer Row ID│ 26│ 26│ 26│ 26│ │ ╶────────────────────┼────┼────┼────┼────┤ │ No Yes Row ID │ 53│ 53│ 55│ 55│ │ Layer Row ID│ 27│ 27│ 27│ 27│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 54│ 54│ 56│ 56│ │ Layer Row ID│ 28│ 28│ 28│ 28│ │ ╶─────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Row ID │ 57│ 57│ 59│ 59│ │ Layer Row ID│ 29│ 29│ 29│ 29│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 58│ 58│ 60│ 60│ │ Layer Row ID│ 30│ 30│ 30│ 30│ │ ╶────────────────────┼────┼────┼────┼────┤ │ No Yes Row ID │ 61│ 61│ 63│ 63│ │ Layer Row ID│ 31│ 31│ 31│ 31│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 62│ 62│ 64│ 64│ │ Layer Row ID│ 32│ 32│ 32│ 32│ ╰───────────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Male ╭──────────────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Yes Column ID │ 1│ 2│ 3│ 4│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 1│ 2│ 3│ 4│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────────┼────┼────┼────┼────┤ │ No Yes Column ID │ 5│ 6│ 7│ 8│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 5│ 6│ 7│ 8│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶────────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Column ID │ 9│ 10│ 11│ 12│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 9│ 10│ 11│ 12│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────────┼────┼────┼────┼────┤ │ No Yes Column ID │ 13│ 14│ 15│ 16│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 13│ 14│ 15│ 16│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶─────────────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Yes Column ID │ 17│ 18│ 19│ 20│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 17│ 18│ 19│ 20│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────────┼────┼────┼────┼────┤ │ No Yes Column ID │ 21│ 22│ 23│ 24│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 21│ 22│ 23│ 24│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶────────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Column ID │ 25│ 26│ 27│ 28│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 25│ 26│ 27│ 28│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────────┼────┼────┼────┼────┤ │ No Yes Column ID │ 29│ 30│ 31│ 32│ │ Layer Column ID│ 1│ 2│ 3│ 4│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 29│ 30│ 31│ 32│ │ Layer Column ID│ 1│ 2│ 3│ 4│ ╰──────────────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Female ╭──────────────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Yes Column ID │ 33│ 34│ 35│ 36│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 33│ 34│ 35│ 36│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────────┼────┼────┼────┼────┤ │ No Yes Column ID │ 37│ 38│ 39│ 40│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 37│ 38│ 39│ 40│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶────────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Column ID │ 41│ 42│ 43│ 44│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 41│ 42│ 43│ 44│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────────┼────┼────┼────┼────┤ │ No Yes Column ID │ 45│ 46│ 47│ 48│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 45│ 46│ 47│ 48│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶─────────────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Yes Column ID │ 49│ 50│ 51│ 52│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 49│ 50│ 51│ 52│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────────┼────┼────┼────┼────┤ │ No Yes Column ID │ 53│ 54│ 55│ 56│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 53│ 54│ 55│ 56│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶────────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Yes Column ID │ 57│ 58│ 59│ 60│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 57│ 58│ 59│ 60│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────────┼────┼────┼────┼────┤ │ No Yes Column ID │ 61│ 62│ 63│ 64│ │ Layer Column ID│ 5│ 6│ 7│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 61│ 62│ 63│ 64│ │ Layer Column ID│ 5│ 6│ 7│ 8│ ╰──────────────────────────────────────────────┴────┴────┴────┴────╯ ]) AT_CLEANUP AT_SETUP([CTABLES area definitions with CLABELS ROWLABELS=LAYER]) AT_KEYWORDS([ROWLABELS LAYER]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=ALL DISPLAY=NAME /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[TABLEID, LAYERID, SUBTABLEID] /SLABELS POSITION=ROW /CLABELS ROWLABELS=LAYER /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[ROWID, LAYERROWID] /SLABELS POSITION=ROW /CLABELS ROWLABELS=LAYER /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[COLID, LAYERCOLID] /SLABELS POSITION=ROW /CLABELS ROWLABELS=LAYER. ]]) AT_CHECK([pspp ctables.sps --table-look="$builddir"/all-layers.stt -O box=unicode -O width=120], [0], [dnl Custom Tables Male Yes ╭──────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Subtable ID│ 1│ 1│ 3│ 3│ 5│ 5│ 7│ 7│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Subtable ID│ 1│ 1│ 3│ 3│ 5│ 5│ 7│ 7│ │ ╶─────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Subtable ID│ 9│ 9│ 11│11│ 13│13│ 15│15│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Subtable ID│ 9│ 9│ 11│11│ 13│13│ 15│15│ ╰──────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Male No ╭──────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ │ Subtable ID│ 2│ 2│ 4│ 4│ 6│ 6│ 8│ 8│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ │ Subtable ID│ 2│ 2│ 4│ 4│ 6│ 6│ 8│ 8│ │ ╶─────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ │ Subtable ID│ 10│10│ 12│12│ 14│14│ 16│16│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ │ Subtable ID│ 10│10│ 12│12│ 14│14│ 16│16│ ╰──────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Female Yes ╭──────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ │ Subtable ID│ 17│17│ 19│19│ 21│21│ 23│23│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ │ Subtable ID│ 17│17│ 19│19│ 21│21│ 23│23│ │ ╶─────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ │ Subtable ID│ 25│25│ 27│27│ 29│29│ 31│31│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ │ Subtable ID│ 25│25│ 27│27│ 29│29│ 31│31│ ╰──────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Female No ╭──────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ │ Subtable ID│ 18│18│ 20│20│ 22│22│ 24│24│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ │ Subtable ID│ 18│18│ 20│20│ 22│22│ 24│24│ │ ╶─────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ │ Subtable ID│ 26│26│ 28│28│ 30│30│ 32│32│ │ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ │ Subtable ID│ 26│26│ 28│28│ 30│30│ 32│32│ ╰──────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Male Yes ╭───────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├───────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Row ID │ 1│ 1│ 3│ 3│ 5│ 5│ 7│ 7│ │ Layer Row ID│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 9│ 9│ 11│11│ 13│13│ 15│15│ │ Layer Row ID│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ │ ╶──────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Row ID │ 17│17│ 19│19│ 21│21│ 23│23│ │ Layer Row ID│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 25│25│ 27│27│ 29│29│ 31│31│ │ Layer Row ID│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ ╰───────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Male No ╭───────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├───────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Row ID │ 2│ 2│ 4│ 4│ 6│ 6│ 8│ 8│ │ Layer Row ID│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 10│10│ 12│12│ 14│14│ 16│16│ │ Layer Row ID│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ │ ╶──────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Row ID │ 18│18│ 20│20│ 22│22│ 24│24│ │ Layer Row ID│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 26│26│ 28│28│ 30│30│ 32│32│ │ Layer Row ID│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ ╰───────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Female Yes ╭───────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├───────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Row ID │ 33│33│ 35│35│ 37│37│ 39│39│ │ Layer Row ID│ 9│ 9│ 9│ 9│ 9│ 9│ 9│ 9│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 41│41│ 43│43│ 45│45│ 47│47│ │ Layer Row ID│ 11│11│ 11│11│ 11│11│ 11│11│ │ ╶──────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Row ID │ 49│49│ 51│51│ 53│53│ 55│55│ │ Layer Row ID│ 13│13│ 13│13│ 13│13│ 13│13│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 57│57│ 59│59│ 61│61│ 63│63│ │ Layer Row ID│ 15│15│ 15│15│ 15│15│ 15│15│ ╰───────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Female No ╭───────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├───────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Row ID │ 34│34│ 36│36│ 38│38│ 40│40│ │ Layer Row ID│ 10│10│ 10│10│ 10│10│ 10│10│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 42│42│ 44│44│ 46│46│ 48│48│ │ Layer Row ID│ 12│12│ 12│12│ 12│12│ 12│12│ │ ╶──────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Row ID │ 50│50│ 52│52│ 54│54│ 56│56│ │ Layer Row ID│ 14│14│ 14│14│ 14│14│ 14│14│ │ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Row ID │ 58│58│ 60│60│ 62│62│ 64│64│ │ Layer Row ID│ 16│16│ 16│16│ 16│16│ 16│16│ ╰───────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Male Yes ╭──────────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Column ID │ 1│ 3│ 5│ 7│ 9│11│ 13│15│ │ Layer Column ID│ 1│ 3│ 5│ 7│ 9│11│ 13│15│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 1│ 3│ 5│ 7│ 9│11│ 13│15│ │ Layer Column ID│ 1│ 3│ 5│ 7│ 9│11│ 13│15│ │ ╶─────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Column ID │ 17│19│ 21│23│ 25│27│ 29│31│ │ Layer Column ID│ 1│ 3│ 5│ 7│ 9│11│ 13│15│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 17│19│ 21│23│ 25│27│ 29│31│ │ Layer Column ID│ 1│ 3│ 5│ 7│ 9│11│ 13│15│ ╰──────────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Male No ╭──────────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Column ID │ 2│ 4│ 6│ 8│ 10│12│ 14│16│ │ Layer Column ID│ 2│ 4│ 6│ 8│ 10│12│ 14│16│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 2│ 4│ 6│ 8│ 10│12│ 14│16│ │ Layer Column ID│ 2│ 4│ 6│ 8│ 10│12│ 14│16│ │ ╶─────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Column ID │ 18│20│ 22│24│ 26│28│ 30│32│ │ Layer Column ID│ 2│ 4│ 6│ 8│ 10│12│ 14│16│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 18│20│ 22│24│ 26│28│ 30│32│ │ Layer Column ID│ 2│ 4│ 6│ 8│ 10│12│ 14│16│ ╰──────────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Female Yes ╭──────────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Column ID │ 33│35│ 37│39│ 41│43│ 45│47│ │ Layer Column ID│ 17│19│ 21│23│ 25│27│ 29│31│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 33│35│ 37│39│ 41│43│ 45│47│ │ Layer Column ID│ 17│19│ 21│23│ 25│27│ 29│31│ │ ╶─────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Column ID │ 49│51│ 53│55│ 57│59│ 61│63│ │ Layer Column ID│ 17│19│ 21│23│ 25│27│ 29│31│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 49│51│ 53│55│ 57│59│ 61│63│ │ Layer Column ID│ 17│19│ 21│23│ 25│27│ 29│31│ ╰──────────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ Custom Tables Female No ╭──────────────────────────────────────┬───────────────────────────╮ │ │ QN27 │ │ ├─────────────┬─────────────┤ │ │ Yes │ No │ │ ├─────────────┼─────────────┤ │ │ QND7A │ QND7A │ │ ├──────┬──────┼──────┬──────┤ │ │ Yes │ No │ Yes │ No │ │ ├──────┼──────┼──────┼──────┤ │ │ QN86 │ QN86 │ QN86 │ QN86 │ │ ├───┬──┼───┬──┼───┬──┼───┬──┤ │ │Yes│No│Yes│No│Yes│No│Yes│No│ ├──────────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │QN26 Yes QN61 Yes QN57 Column ID │ 34│36│ 38│40│ 42│44│ 46│48│ │ Layer Column ID│ 18│20│ 22│24│ 26│28│ 30│32│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 34│36│ 38│40│ 42│44│ 46│48│ │ Layer Column ID│ 18│20│ 22│24│ 26│28│ 30│32│ │ ╶─────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN61 Yes QN57 Column ID │ 50│52│ 54│56│ 58│60│ 62│64│ │ Layer Column ID│ 18│20│ 22│24│ 26│28│ 30│32│ │ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┤ │ No QN57 Column ID │ 50│52│ 54│56│ 58│60│ 62│64│ │ Layer Column ID│ 18│20│ 22│24│ 26│28│ 30│32│ ╰──────────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──╯ ]) AT_CLEANUP AT_SETUP([CTABLES area definitions with CLABELS COLLABELS=LAYER]) AT_KEYWORDS([COLLABELS LAYER]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=ALL DISPLAY=NAME /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[TABLEID, LAYERID, SUBTABLEID] /SLABELS POSITION=ROW /CLABELS COLLABELS=LAYER /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[ROWID, LAYERROWID] /SLABELS POSITION=ROW /CLABELS COLLABELS=LAYER /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[COLID, LAYERCOLID] /SLABELS POSITION=ROW /CLABELS COLLABELS=LAYER. ]]) AT_CHECK([pspp ctables.sps --table-look="$builddir"/all-layers.stt -O box=unicode -O width=120], [0], [dnl Custom Tables Male Yes ╭──────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 1│ 1│ 3│ 3│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 1│ 1│ 3│ 3│ │ ╶────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 5│ 5│ 7│ 7│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 5│ 5│ 7│ 7│ │ ╶─────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 9│ 9│ 11│ 11│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 9│ 9│ 11│ 11│ │ ╶────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 13│ 13│ 15│ 15│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 1│ 1│ 1│ 1│ │ Subtable ID│ 13│ 13│ 15│ 15│ ╰──────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Male No ╭──────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 2│ 2│ 4│ 4│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 2│ 2│ 4│ 4│ │ ╶────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 6│ 6│ 8│ 8│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 6│ 6│ 8│ 8│ │ ╶─────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 10│ 10│ 12│ 12│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 10│ 10│ 12│ 12│ │ ╶────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 14│ 14│ 16│ 16│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 2│ 2│ 2│ 2│ │ Subtable ID│ 14│ 14│ 16│ 16│ ╰──────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Female Yes ╭──────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ │ Subtable ID│ 17│ 17│ 19│ 19│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ │ Subtable ID│ 17│ 17│ 19│ 19│ │ ╶────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ │ Subtable ID│ 21│ 21│ 23│ 23│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ │ Subtable ID│ 21│ 21│ 23│ 23│ │ ╶─────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ │ Subtable ID│ 25│ 25│ 27│ 27│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ │ Subtable ID│ 25│ 25│ 27│ 27│ │ ╶────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ │ Subtable ID│ 29│ 29│ 31│ 31│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 3│ 3│ 3│ 3│ │ Subtable ID│ 29│ 29│ 31│ 31│ ╰──────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Female No ╭──────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ │ Subtable ID│ 18│ 18│ 20│ 20│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ │ Subtable ID│ 18│ 18│ 20│ 20│ │ ╶────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ │ Subtable ID│ 22│ 22│ 24│ 24│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ │ Subtable ID│ 22│ 22│ 24│ 24│ │ ╶─────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ │ Subtable ID│ 26│ 26│ 28│ 28│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ │ Subtable ID│ 26│ 26│ 28│ 28│ │ ╶────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ │ Subtable ID│ 30│ 30│ 32│ 32│ │ ╶───────────────┼────┼────┼────┼────┤ │ No Table ID │ 1│ 1│ 1│ 1│ │ Layer ID │ 4│ 4│ 4│ 4│ │ Subtable ID│ 30│ 30│ 32│ 32│ ╰──────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Male Yes ╭───────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├───────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Row ID │ 1│ 1│ 3│ 3│ │ Layer Row ID│ 1│ 1│ 1│ 1│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 5│ 5│ 7│ 7│ │ Layer Row ID│ 3│ 3│ 3│ 3│ │ ╶─────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Row ID │ 9│ 9│ 11│ 11│ │ Layer Row ID│ 5│ 5│ 5│ 5│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 13│ 13│ 15│ 15│ │ Layer Row ID│ 7│ 7│ 7│ 7│ │ ╶──────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Row ID │ 17│ 17│ 19│ 19│ │ Layer Row ID│ 9│ 9│ 9│ 9│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 21│ 21│ 23│ 23│ │ Layer Row ID│ 11│ 11│ 11│ 11│ │ ╶─────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Row ID │ 25│ 25│ 27│ 27│ │ Layer Row ID│ 13│ 13│ 13│ 13│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 29│ 29│ 31│ 31│ │ Layer Row ID│ 15│ 15│ 15│ 15│ ╰───────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Male No ╭───────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├───────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Row ID │ 2│ 2│ 4│ 4│ │ Layer Row ID│ 2│ 2│ 2│ 2│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 6│ 6│ 8│ 8│ │ Layer Row ID│ 4│ 4│ 4│ 4│ │ ╶─────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Row ID │ 10│ 10│ 12│ 12│ │ Layer Row ID│ 6│ 6│ 6│ 6│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 14│ 14│ 16│ 16│ │ Layer Row ID│ 8│ 8│ 8│ 8│ │ ╶──────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Row ID │ 18│ 18│ 20│ 20│ │ Layer Row ID│ 10│ 10│ 10│ 10│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 22│ 22│ 24│ 24│ │ Layer Row ID│ 12│ 12│ 12│ 12│ │ ╶─────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Row ID │ 26│ 26│ 28│ 28│ │ Layer Row ID│ 14│ 14│ 14│ 14│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 30│ 30│ 32│ 32│ │ Layer Row ID│ 16│ 16│ 16│ 16│ ╰───────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Female Yes ╭───────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├───────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Row ID │ 33│ 33│ 35│ 35│ │ Layer Row ID│ 17│ 17│ 17│ 17│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 37│ 37│ 39│ 39│ │ Layer Row ID│ 19│ 19│ 19│ 19│ │ ╶─────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Row ID │ 41│ 41│ 43│ 43│ │ Layer Row ID│ 21│ 21│ 21│ 21│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 45│ 45│ 47│ 47│ │ Layer Row ID│ 23│ 23│ 23│ 23│ │ ╶──────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Row ID │ 49│ 49│ 51│ 51│ │ Layer Row ID│ 25│ 25│ 25│ 25│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 53│ 53│ 55│ 55│ │ Layer Row ID│ 27│ 27│ 27│ 27│ │ ╶─────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Row ID │ 57│ 57│ 59│ 59│ │ Layer Row ID│ 29│ 29│ 29│ 29│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 61│ 61│ 63│ 63│ │ Layer Row ID│ 31│ 31│ 31│ 31│ ╰───────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Female No ╭───────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├───────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Row ID │ 34│ 34│ 36│ 36│ │ Layer Row ID│ 18│ 18│ 18│ 18│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 38│ 38│ 40│ 40│ │ Layer Row ID│ 20│ 20│ 20│ 20│ │ ╶─────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Row ID │ 42│ 42│ 44│ 44│ │ Layer Row ID│ 22│ 22│ 22│ 22│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 46│ 46│ 48│ 48│ │ Layer Row ID│ 24│ 24│ 24│ 24│ │ ╶──────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Row ID │ 50│ 50│ 52│ 52│ │ Layer Row ID│ 26│ 26│ 26│ 26│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 54│ 54│ 56│ 56│ │ Layer Row ID│ 28│ 28│ 28│ 28│ │ ╶─────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Row ID │ 58│ 58│ 60│ 60│ │ Layer Row ID│ 30│ 30│ 30│ 30│ │ ╶────────────────┼────┼────┼────┼────┤ │ No Row ID │ 62│ 62│ 64│ 64│ │ Layer Row ID│ 32│ 32│ 32│ 32│ ╰───────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Male Yes ╭──────────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Column ID │ 1│ 3│ 5│ 7│ │ Layer Column ID│ 1│ 3│ 5│ 7│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 1│ 3│ 5│ 7│ │ Layer Column ID│ 1│ 3│ 5│ 7│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Column ID │ 9│ 11│ 13│ 15│ │ Layer Column ID│ 1│ 3│ 5│ 7│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 9│ 11│ 13│ 15│ │ Layer Column ID│ 1│ 3│ 5│ 7│ │ ╶─────────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Column ID │ 17│ 19│ 21│ 23│ │ Layer Column ID│ 1│ 3│ 5│ 7│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 17│ 19│ 21│ 23│ │ Layer Column ID│ 1│ 3│ 5│ 7│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Column ID │ 25│ 27│ 29│ 31│ │ Layer Column ID│ 1│ 3│ 5│ 7│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 25│ 27│ 29│ 31│ │ Layer Column ID│ 1│ 3│ 5│ 7│ ╰──────────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Male No ╭──────────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Column ID │ 2│ 4│ 6│ 8│ │ Layer Column ID│ 2│ 4│ 6│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 2│ 4│ 6│ 8│ │ Layer Column ID│ 2│ 4│ 6│ 8│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Column ID │ 10│ 12│ 14│ 16│ │ Layer Column ID│ 2│ 4│ 6│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 10│ 12│ 14│ 16│ │ Layer Column ID│ 2│ 4│ 6│ 8│ │ ╶─────────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Column ID │ 18│ 20│ 22│ 24│ │ Layer Column ID│ 2│ 4│ 6│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 18│ 20│ 22│ 24│ │ Layer Column ID│ 2│ 4│ 6│ 8│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Column ID │ 26│ 28│ 30│ 32│ │ Layer Column ID│ 2│ 4│ 6│ 8│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 26│ 28│ 30│ 32│ │ Layer Column ID│ 2│ 4│ 6│ 8│ ╰──────────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Female Yes ╭──────────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Column ID │ 33│ 35│ 37│ 39│ │ Layer Column ID│ 9│ 11│ 13│ 15│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 33│ 35│ 37│ 39│ │ Layer Column ID│ 9│ 11│ 13│ 15│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Column ID │ 41│ 43│ 45│ 47│ │ Layer Column ID│ 9│ 11│ 13│ 15│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 41│ 43│ 45│ 47│ │ Layer Column ID│ 9│ 11│ 13│ 15│ │ ╶─────────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Column ID │ 49│ 51│ 53│ 55│ │ Layer Column ID│ 9│ 11│ 13│ 15│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 49│ 51│ 53│ 55│ │ Layer Column ID│ 9│ 11│ 13│ 15│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Column ID │ 57│ 59│ 61│ 63│ │ Layer Column ID│ 9│ 11│ 13│ 15│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 57│ 59│ 61│ 63│ │ Layer Column ID│ 9│ 11│ 13│ 15│ ╰──────────────────────────────────────────┴────┴────┴────┴────╯ Custom Tables Female No ╭──────────────────────────────────────────┬───────────────────╮ │ │ QN27 │ │ ├─────────┬─────────┤ │ │ Yes │ No │ │ ├─────────┼─────────┤ │ │ QND7A │ QND7A │ │ ├────┬────┼────┬────┤ │ │ Yes│ No │ Yes│ No │ │ ├────┼────┼────┼────┤ │ │QN86│QN86│QN86│QN86│ ├──────────────────────────────────────────┼────┼────┼────┼────┤ │QN26 Yes QN61 Yes QN57 Yes Column ID │ 34│ 36│ 38│ 40│ │ Layer Column ID│ 10│ 12│ 14│ 16│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 34│ 36│ 38│ 40│ │ Layer Column ID│ 10│ 12│ 14│ 16│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Column ID │ 42│ 44│ 46│ 48│ │ Layer Column ID│ 10│ 12│ 14│ 16│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 42│ 44│ 46│ 48│ │ Layer Column ID│ 10│ 12│ 14│ 16│ │ ╶─────────────────────────────────────┼────┼────┼────┼────┤ │ No QN61 Yes QN57 Yes Column ID │ 50│ 52│ 54│ 56│ │ Layer Column ID│ 10│ 12│ 14│ 16│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 50│ 52│ 54│ 56│ │ Layer Column ID│ 10│ 12│ 14│ 16│ │ ╶────────────────────────────┼────┼────┼────┼────┤ │ No QN57 Yes Column ID │ 58│ 60│ 62│ 64│ │ Layer Column ID│ 10│ 12│ 14│ 16│ │ ╶───────────────────┼────┼────┼────┼────┤ │ No Column ID │ 58│ 60│ 62│ 64│ │ Layer Column ID│ 10│ 12│ 14│ 16│ ╰──────────────────────────────────────────┴────┴────┴────┴────╯ ]) AT_CLEANUP AT_SETUP([CTABLES categorical summary functions]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /TABLE region BY qnd5a[COUNT, ROWPCT, ROWPCT.VALIDN, ROWPCT.TOTALN, TOTAL[COUNT, VALIDN, TOTALN]] /CATEGORIES VARIABLES=qnd5a TOTAL=YES MISSING=INCLUDE /SLABELS POSITION=ROW. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [0], [dnl Custom Tables ╭─────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ │ D5a. What would you say is your primary ethnic background? │ │ ├─────┬───────┬───────┬──────────┬──────────┬─────────┬──────────┬──────────────┬──────┬───────┬─────┤ │ │ │ │ │ │ │ │ │ Multiple - │ │ │ │ │ │ │ │ │ South │ Central │ Puerto │ Something│ cannot choose│ Don't│ │ │ │ │Cuban│Mexican│Spanish│ American │ American │Rican, OR│ else │ one │ know │Refused│Total│ ├─────────────────┼─────┼───────┼───────┼──────────┼──────────┼─────────┼──────────┼──────────────┼──────┼───────┼─────┤ │Region NE Count │ 6│ 8│ 8│ 11│ 7│ 39│ 23│ 2│ 0│ 1│ 105│ │ Row % │ 5.7%│ 7.6%│ 7.6%│ 10.5%│ 6.7%│ 37.1%│ 21.9%│ 1.9%│ .0%│ 1.0%│ │ │ Row │ 5.8%│ 7.7%│ 7.7%│ 10.6%│ 6.7%│ 37.5%│ 22.1%│ 1.9%│ .0%│ .0%│ │ │ Valid N│ │ │ │ │ │ │ │ │ │ │ │ │ % │ │ │ │ │ │ │ │ │ │ │ │ │ Row │ .4%│ .6%│ .6%│ .8%│ .5%│ 2.8%│ 1.6%│ .1%│ .0%│ .1%│ │ │ Total N│ │ │ │ │ │ │ │ │ │ │ │ │ % │ │ │ │ │ │ │ │ │ │ │ │ │ Valid N│ │ │ │ │ │ │ │ │ │ │ 104│ │ Total N│ │ │ │ │ │ │ │ │ │ │ 1409│ │ ╶──────────┼─────┼───────┼───────┼──────────┼──────────┼─────────┼──────────┼──────────────┼──────┼───────┼─────┤ │ MW Count │ 3│ 24│ 1│ 4│ 5│ 9│ 6│ 0│ 0│ 1│ 53│ │ Row % │ 5.7%│ 45.3%│ 1.9%│ 7.5%│ 9.4%│ 17.0%│ 11.3%│ .0%│ .0%│ 1.9%│ │ │ Row │ 5.8%│ 46.2%│ 1.9%│ 7.7%│ 9.6%│ 17.3%│ 11.5%│ .0%│ .0%│ .0%│ │ │ Valid N│ │ │ │ │ │ │ │ │ │ │ │ │ % │ │ │ │ │ │ │ │ │ │ │ │ │ Row │ .2%│ 1.5%│ .1%│ .2%│ .3%│ .5%│ .4%│ .0%│ .0%│ .1%│ │ │ Total N│ │ │ │ │ │ │ │ │ │ │ │ │ % │ │ │ │ │ │ │ │ │ │ │ │ │ Valid N│ │ │ │ │ │ │ │ │ │ │ 52│ │ Total N│ │ │ │ │ │ │ │ │ │ │ 1654│ │ ╶──────────┼─────┼───────┼───────┼──────────┼──────────┼─────────┼──────────┼──────────────┼──────┼───────┼─────┤ │ S Count │ 10│ 113│ 11│ 14│ 25│ 23│ 20│ 2│ 3│ 2│ 223│ │ Row % │ 4.5%│ 50.7%│ 4.9%│ 6.3%│ 11.2%│ 10.3%│ 9.0%│ .9%│ 1.3%│ .9%│ │ │ Row │ 4.6%│ 51.8%│ 5.0%│ 6.4%│ 11.5%│ 10.6%│ 9.2%│ .9%│ .0%│ .0%│ │ │ Valid N│ │ │ │ │ │ │ │ │ │ │ │ │ % │ │ │ │ │ │ │ │ │ │ │ │ │ Row │ .4%│ 4.7%│ .5%│ .6%│ 1.0%│ 1.0%│ .8%│ .1%│ .1%│ .1%│ │ │ Total N│ │ │ │ │ │ │ │ │ │ │ │ │ % │ │ │ │ │ │ │ │ │ │ │ │ │ Valid N│ │ │ │ │ │ │ │ │ │ │ 218│ │ Total N│ │ │ │ │ │ │ │ │ │ │ 2390│ │ ╶──────────┼─────┼───────┼───────┼──────────┼──────────┼─────────┼──────────┼──────────────┼──────┼───────┼─────┤ │ W Count │ 1│ 166│ 28│ 5│ 15│ 7│ 19│ 3│ 0│ 1│ 245│ │ Row % │ .4%│ 67.8%│ 11.4%│ 2.0%│ 6.1%│ 2.9%│ 7.8%│ 1.2%│ .0%│ .4%│ │ │ Row │ .4%│ 68.0%│ 11.5%│ 2.0%│ 6.1%│ 2.9%│ 7.8%│ 1.2%│ .0%│ .0%│ │ │ Valid N│ │ │ │ │ │ │ │ │ │ │ │ │ % │ │ │ │ │ │ │ │ │ │ │ │ │ Row │ .1%│ 10.7%│ 1.8%│ .3%│ 1.0%│ .5%│ 1.2%│ .2%│ .0%│ .1%│ │ │ Total N│ │ │ │ │ │ │ │ │ │ │ │ │ % │ │ │ │ │ │ │ │ │ │ │ │ │ Valid N│ │ │ │ │ │ │ │ │ │ │ 244│ │ Total N│ │ │ │ │ │ │ │ │ │ │ 1546│ ╰─────────────────┴─────┴───────┴───────┴──────────┴──────────┴─────────┴──────────┴──────────────┴──────┴───────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES scale summary functions]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. SET TVAR=NAME. * Use SPLIT FILE with FREQUENCIES to generate output equivalent to CTABLES later, to make the results easier to verify. SPLIT FILE BY REGION. FREQUENCIES qn19a /STATISTICS=MEAN SEMEAN MEDIAN MODE STDDEV VARIANCE RANGE MINIMUM MAXIMUM SUM /FORMAT NOTABLE /MISSING=INCLUDE. SPLIT FILE OFF. CTABLES /VLABELS VARIABLE=qn19a DISPLAY=NONE /TABLE region BY qn19a[VALIDN, MISSING, MEAN, SEMEAN, MEDIAN, MODE, STDDEV, VARIANCE, RANGE, MINIMUM, MAXIMUM, SUM, COUNT, TOTALN, ROWPCT.SUM] /CATEGORIES VARIABLES=qn19a TOTAL=YES MISSING=INCLUDE /SLABELS POSITION=ROW /CLABELS ROWLABELS=OPPOSITE. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [0], [dnl Statistics ╭─────────┬───────────────────────────────────╮ │ │ REGION │ │ ├────────┬────────┬────────┬────────┤ │ │ NE │ MW │ S │ W │ │ ├────────┼────────┼────────┼────────┤ │ │ QN19A │ QN19A │ QN19A │ QN19A │ ├─────────┼────────┼────────┼────────┼────────┤ │N Valid │ 936│ 1019│ 1276│ 950│ │ Missing│ 473│ 635│ 1114│ 596│ ├─────────┼────────┼────────┼────────┼────────┤ │Mean │ 19.33│ 19.83│ 20.29│ 19.87│ ├─────────┼────────┼────────┼────────┼────────┤ │S.E. Mean│ .14│ .16│ .18│ .17│ ├─────────┼────────┼────────┼────────┼────────┤ │Median │ 18.00│ 19.00│ 19.00│ 19.00│ ├─────────┼────────┼────────┼────────┼────────┤ │Mode │ 18.00│ 18.00│ 18.00│ 18.00│ ├─────────┼────────┼────────┼────────┼────────┤ │Std Dev │ 4.41│ 5.15│ 6.44│ 5.25│ ├─────────┼────────┼────────┼────────┼────────┤ │Variance │ 19.41│ 26.47│ 41.43│ 27.59│ ├─────────┼────────┼────────┼────────┼────────┤ │Range │ 59.00│ 71.00│ 75.00│ 61.00│ ├─────────┼────────┼────────┼────────┼────────┤ │Minimum │ .00│ 4.00│ 4.00│ 4.00│ ├─────────┼────────┼────────┼────────┼────────┤ │Maximum │ 59.00│ 75.00│ 79.00│ 65.00│ ├─────────┼────────┼────────┼────────┼────────┤ │Sum │18092.00│20206.00│25886.00│18877.00│ ╰─────────┴────────┴────────┴────────┴────────╯ Custom Tables ╭────────────────────────┬────────┬────────┬────────┬────────╮ │ │ NE │ MW │ S │ W │ ├────────────────────────┼────────┼────────┼────────┼────────┤ │REGION Valid N │ 936│ 1019│ 1276│ 950│ │ Missing │ 473.00│ 635.00│ 1114.00│ 596.00│ │ Mean │ 19.33│ 19.83│ 20.29│ 19.87│ │ Std Error of Mean│ .14│ .16│ .18│ .17│ │ Median │ 18.00│ 19.00│ 19.00│ 19.00│ │ Mode │ 18.00│ 18.00│ 18.00│ 18.00│ │ Std Deviation │ 4.41│ 5.15│ 6.44│ 5.25│ │ Variance │ 19.41│ 26.47│ 41.43│ 27.59│ │ Range │ 59.00│ 71.00│ 75.00│ 61.00│ │ Minimum │ .00│ 4.00│ 4.00│ 4.00│ │ Maximum │ 59.00│ 75.00│ 79.00│ 65.00│ │ Sum │18092.00│20206.00│25886.00│18877.00│ │ Count │ 1409│ 1654│ 2390│ 1546│ │ Total N │ 1409│ 1654│ 2390│ 1546│ │ Row Sum % │ 21.8%│ 24.3%│ 31.2%│ 22.7%│ ╰────────────────────────┴────────┴────────┴────────┴────────╯ ]) AT_CLEANUP AT_SETUP([CTABLES scale summary functions - weighting]) weight=1 c=10 for a in 1 2 9; do for b in 3 4 9; do for n in 1 2 3 4 5 6 7 8 9 10; do if test $c -lt 15; then cval=. else cval=$c fi printf "$weight $a $b $cval\n" weight=$(expr \( $weight + 3 \) % 7 + 2) c=$(expr \( $c + 13 \) % 29 + 7) done done done > ctables.txt AT_DATA([analysis.sps], [[* Use SPLIT FILE with FREQUENCIES to generate output equivalent to CTABLES later, to make the results easier to verify. SPLIT FILE BY a b. FREQUENCIES c /STATISTICS=MEAN SEMEAN MEDIAN MODE STDDEV VARIANCE RANGE MINIMUM MAXIMUM SUM /FORMAT NOTABLE /MISSING=INCLUDE. SPLIT FILE OFF. CTABLES /TABLE c[VALIDN, MISSING, MEAN F8.2, SEMEAN F8.2, MEDIAN F8.2, MODE, STDDEV F8.2, VARIANCE F8.2, RANGE F8.2, MINIMUM, MAXIMUM, SUM F8.2, COUNT, TOTALN, LAYERROWPCT.SUM] BY a>b /SLABELS POSITION=ROW /CATEGORIES VARIABLES=a b MISSING=INCLUDE. ]]) AT_DATA([ctables.sps], [[DATA LIST LIST NOTABLE FILE='ctables.txt' /w (F5.0) a b c (f2.0). VAR LEVEL w c (SCALE) a b (NOMINAL). MISSING VALUES a b (9). INCLUDE 'analysis.sps'. WEIGHT BY w. INCLUDE 'analysis.sps'. * Same as original analysis using unweighted versions of summaries. CTABLES /TABLE c[UVALIDN, UMISSING, UMEAN F8.2, USEMEAN F8.2, UMEDIAN F8.2, UMODE, USTDDEV F8.2, UVARIANCE F8.2, USUM F8.2, UCOUNT, UTOTALN, ULAYERROWPCT.SUM] BY a>b /SLABELS POSITION=ROW /CATEGORIES VARIABLES=a b MISSING=INCLUDE. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [0], [dnl Statistics ╭─────────┬──────────────────────────────────────────────────────────────╮ │ │ a │ │ ├────────────────────┬────────────────────┬────────────────────┤ │ │ 1 │ 2 │ 9 │ │ ├────────────────────┼────────────────────┼────────────────────┤ │ │ b │ b │ b │ │ ├──────┬──────┬──────┼──────┬──────┬──────┼──────┬──────┬──────┤ │ │ 3 │ 4 │ 9 │ 3 │ 4 │ 9 │ 3 │ 4 │ 9 │ │ ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │ │ c │ c │ c │ c │ c │ c │ c │ c │ c │ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │N Valid │ 7│ 6│ 8│ 7│ 7│ 8│ 7│ 7│ 8│ │ Missing│ 3│ 4│ 2│ 3│ 3│ 2│ 3│ 3│ 2│ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │Mean │ 25.86│ 24.50│ 24.63│ 25.86│ 25.71│ 24.25│ 25.43│ 25.29│ 23.88│ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │S.E. Mean│ 2.44│ 2.14│ 2.58│ 2.44│ 2.18│ 2.43│ 2.36│ 2.18│ 2.47│ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │Median │ 25.00│ 24.50│ 25.00│ 25.00│ 27.00│ 25.00│ 25.00│ 24.00│ 23.50│ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │Mode │ 16│ 18│ 15│ 16│ 18│ 15│ 16│ 18│ 15│ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │Std Dev │ 6.47│ 5.24│ 7.31│ 6.47│ 5.77│ 6.88│ 6.24│ 5.77│ 6.98│ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │Variance │ 41.81│ 27.50│ 53.41│ 41.81│ 33.24│ 47.36│ 38.95│ 33.24│ 48.70│ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │Range │ 18.00│ 13.00│ 20.00│ 18.00│ 15.00│ 20.00│ 18.00│ 15.00│ 20.00│ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │Minimum │ 16│ 18│ 15│ 16│ 18│ 15│ 16│ 18│ 15│ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │Maximum │ 34│ 31│ 35│ 34│ 33│ 35│ 34│ 33│ 35│ ├─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │Sum │181.00│147.00│197.00│181.00│180.00│194.00│178.00│177.00│191.00│ ╰─────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────╯ Custom Tables ╭───────────────────┬──────────────────────────────────────────────────────────────╮ │ │ a │ │ ├────────────────────┬────────────────────┬────────────────────┤ │ │ 1 │ 2 │ 9 │ │ ├────────────────────┼────────────────────┼────────────────────┤ │ │ b │ b │ b │ │ ├──────┬──────┬──────┼──────┬──────┬──────┼──────┬──────┬──────┤ │ │ 3 │ 4 │ 9 │ 3 │ 4 │ 9 │ 3 │ 4 │ 9 │ ├───────────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │c Valid N │ 7│ 6│ 8│ 7│ 7│ 8│ 7│ 7│ 8│ │ Missing │ 3│ 4│ 2│ 3│ 3│ 2│ 3│ 3│ 2│ │ Mean │ 25.86│ 24.50│ 24.63│ 25.86│ 25.71│ 24.25│ 25.43│ 25.29│ 23.88│ │ Std Error of Mean│ 2.44│ 2.14│ 2.58│ 2.44│ 2.18│ 2.43│ 2.36│ 2.18│ 2.47│ │ Median │ 25.00│ 24.50│ 25.00│ 25.00│ 27.00│ 25.00│ 25.00│ 24.00│ 23.50│ │ Mode │ 16│ 18│ 15│ 16│ 18│ 15│ 16│ 18│ 15│ │ Std Deviation │ 6.47│ 5.24│ 7.31│ 6.47│ 5.77│ 6.88│ 6.24│ 5.77│ 6.98│ │ Variance │ 41.81│ 27.50│ 53.41│ 41.81│ 33.24│ 47.36│ 38.95│ 33.24│ 48.70│ │ Range │ 18.00│ 13.00│ 20.00│ 18.00│ 15.00│ 20.00│ 18.00│ 15.00│ 20.00│ │ Minimum │ 16│ 18│ 15│ 16│ 18│ 15│ 16│ 18│ 15│ │ Maximum │ 34│ 31│ 35│ 34│ 33│ 35│ 34│ 33│ 35│ │ Sum │181.00│147.00│197.00│181.00│180.00│194.00│178.00│177.00│191.00│ │ Count │ 10│ 10│ 10│ 10│ 10│ 10│ 10│ 10│ 10│ │ Total N │ 10│ 10│ 10│ 10│ 10│ 10│ 10│ 10│ 10│ │ Layer Row Sum % │ 11.1%│ 9.0%│ 12.1%│ 11.1%│ 11.1%│ 11.9%│ 10.9%│ 10.9%│ 11.7%│ ╰───────────────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────╯ Statistics ╭─────────┬─────────────────────────────────────────────────────────────────╮ │ │ a │ │ ├─────────────────────┬─────────────────────┬─────────────────────┤ │ │ 1 │ 2 │ 9 │ │ ├─────────────────────┼─────────────────────┼─────────────────────┤ │ │ b │ b │ b │ │ ├───────┬──────┬──────┼──────┬───────┬──────┼──────┬──────┬───────┤ │ │ 3 │ 4 │ 9 │ 3 │ 4 │ 9 │ 3 │ 4 │ 9 │ │ ├───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │ │ c │ c │ c │ c │ c │ c │ c │ c │ c │ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │N Valid │ 40│ 35│ 41│ 26│ 38│ 40│ 34│ 32│ 39│ │ Missing│ 6│ 14│ 11│ 22│ 13│ 7│ 16│ 21│ 10│ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │Mean │ 27.23│ 24.20│ 22.63│ 27.96│ 27.21│ 23.48│ 23.71│ 25.47│ 26.03│ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │S.E. Mean│ .93│ .75│ 1.03│ 1.12│ .84│ .87│ 1.01│ 1.05│ 1.01│ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │Median │ 30.00│ 22.00│ 19.00│ 30.00│ 29.00│ 24.00│ 23.00│ 24.00│ 28.00│ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │Mode │ 34│ 29│ 19│ 34│ 33│ 28│ 23│ 18│ 30│ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │Std Dev │ 5.89│ 4.42│ 6.59│ 5.69│ 5.16│ 5.50│ 5.87│ 5.94│ 6.30│ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │Variance │ 34.64│ 19.52│ 43.39│ 32.36│ 26.66│ 30.20│ 34.46│ 35.29│ 39.71│ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │Range │ 18.00│ 13.00│ 20.00│ 18.00│ 15.00│ 20.00│ 18.00│ 15.00│ 20.00│ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │Minimum │ 16│ 18│ 15│ 16│ 18│ 15│ 16│ 18│ 15│ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │Maximum │ 34│ 31│ 35│ 34│ 33│ 35│ 34│ 33│ 35│ ├─────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │Sum │1089.00│847.00│928.00│727.00│1034.00│939.00│806.00│815.00│1015.00│ ╰─────────┴───────┴──────┴──────┴──────┴───────┴──────┴──────┴──────┴───────╯ Custom Tables ╭───────────────────┬─────────────────────────────────────────────────────────────────╮ │ │ a │ │ ├─────────────────────┬─────────────────────┬─────────────────────┤ │ │ 1 │ 2 │ 9 │ │ ├─────────────────────┼─────────────────────┼─────────────────────┤ │ │ b │ b │ b │ │ ├───────┬──────┬──────┼──────┬───────┬──────┼──────┬──────┬───────┤ │ │ 3 │ 4 │ 9 │ 3 │ 4 │ 9 │ 3 │ 4 │ 9 │ ├───────────────────┼───────┼──────┼──────┼──────┼───────┼──────┼──────┼──────┼───────┤ │c Valid N │ 40│ 35│ 41│ 26│ 38│ 40│ 34│ 32│ 39│ │ Missing │ 6│ 14│ 11│ 22│ 13│ 7│ 16│ 21│ 10│ │ Mean │ 27.22│ 24.20│ 22.63│ 27.96│ 27.21│ 23.48│ 23.71│ 25.47│ 26.03│ │ Std Error of Mean│ .93│ .75│ 1.03│ 1.12│ .84│ .87│ 1.01│ 1.05│ 1.01│ │ Median │ 30.00│ 22.00│ 19.00│ 30.00│ 29.00│ 24.00│ 23.00│ 24.00│ 28.00│ │ Mode │ 34│ 29│ 19│ 34│ 33│ 28│ 23│ 18│ 30│ │ Std Deviation │ 5.89│ 4.42│ 6.59│ 5.69│ 5.16│ 5.50│ 5.87│ 5.94│ 6.30│ │ Variance │ 34.64│ 19.52│ 43.39│ 32.36│ 26.66│ 30.20│ 34.46│ 35.29│ 39.71│ │ Range │ 18.00│ 13.00│ 20.00│ 18.00│ 15.00│ 20.00│ 18.00│ 15.00│ 20.00│ │ Minimum │ 16│ 18│ 15│ 16│ 18│ 15│ 16│ 18│ 15│ │ Maximum │ 34│ 31│ 35│ 34│ 33│ 35│ 34│ 33│ 35│ │ Sum │1089.00│847.00│928.00│727.00│1034.00│939.00│806.00│815.00│1015.00│ │ Count │ 46│ 49│ 52│ 48│ 51│ 47│ 50│ 53│ 49│ │ Total N │ 46│ 49│ 52│ 48│ 51│ 47│ 50│ 53│ 49│ │ Layer Row Sum % │ 13.3%│ 10.3%│ 11.3%│ 8.9%│ 12.6%│ 11.5%│ 9.8%│ 9.9%│ 12.4%│ ╰───────────────────┴───────┴──────┴──────┴──────┴───────┴──────┴──────┴──────┴───────╯ Custom Tables ╭──────────────────────────────┬──────────────────────────────────────────────────────────────╮ │ │ a │ │ ├────────────────────┬────────────────────┬────────────────────┤ │ │ 1 │ 2 │ 9 │ │ ├────────────────────┼────────────────────┼────────────────────┤ │ │ b │ b │ b │ │ ├──────┬──────┬──────┼──────┬──────┬──────┼──────┬──────┬──────┤ │ │ 3 │ 4 │ 9 │ 3 │ 4 │ 9 │ 3 │ 4 │ 9 │ ├──────────────────────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ │c Unweighted Valid N │ 7│ 6│ 8│ 7│ 7│ 8│ 7│ 7│ 8│ │ Unweighted Missing │ 3│ 4│ 2│ 3│ 3│ 2│ 3│ 3│ 2│ │ Unweighted Mean │ 25.86│ 24.50│ 24.63│ 25.86│ 25.71│ 24.25│ 25.43│ 25.29│ 23.88│ │ Unweighted Std Error of Mean│ 2.44│ 2.14│ 2.58│ 2.44│ 2.18│ 2.43│ 2.36│ 2.18│ 2.47│ │ Unweighted Median │ 25.00│ 24.50│ 25.00│ 25.00│ 27.00│ 25.00│ 25.00│ 24.00│ 23.50│ │ Unweighted Mode │ 16│ 18│ 15│ 16│ 18│ 15│ 16│ 18│ 15│ │ Unweighted Std Deviation │ 6.47│ 5.24│ 7.31│ 6.47│ 5.77│ 6.88│ 6.24│ 5.77│ 6.98│ │ Unweighted Variance │ 41.81│ 27.50│ 53.41│ 41.81│ 33.24│ 47.36│ 38.95│ 33.24│ 48.70│ │ Unweighted Sum │181.00│147.00│197.00│181.00│180.00│194.00│178.00│177.00│191.00│ │ Unweighted Count │ 10│ 10│ 10│ 10│ 10│ 10│ 10│ 10│ 10│ │ Unweighted Total N │ 10│ 10│ 10│ 10│ 10│ 10│ 10│ 10│ 10│ │ Unweighted Layer Row Sum % │ 11.1%│ 9.0%│ 12.1%│ 11.1%│ 11.1%│ 11.9%│ 10.9%│ 10.9%│ 11.7%│ ╰──────────────────────────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────╯ ]) AT_CLEANUP AT_SETUP([CTABLES hidden scale VLABELS]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /TABLE region BY qn19a + qn35 /SLABELS POSITION=ROW. CTABLES /VLABELS VARIABLE=qn19a DISPLAY=NONE /TABLE region BY qn19a + qn35 /SLABELS POSITION=ROW. CTABLES /VLABELS VARIABLE=qn35 DISPLAY=NONE /TABLE region BY qn19a + qn35 /SLABELS POSITION=ROW. * This one in particular caused a crash because no categories were created on the column axis, so passing in 0 for the index was still too big for that number of categories. It was fixed by creating a name-only category for each variable despite the "NONE" request, then hiding the entire dimension's labels if all its labels were set to "NONE". CTABLES /VLABELS VARIABLE=qn19a qn35 DISPLAY=NONE /TABLE region BY qn19a + qn35 /SLABELS POSITION=ROW. ]]) AT_CHECK([pspp ctables.sps -O box=unicode], [0], [dnl Custom Tables ╭──────────────┬────────────────────────────┬─────────────────────────────────╮ │ │ 19a. About how old were you│ 35. In the past thirty days, how│ │ │ when you first starting │ many times have you driven a │ │ │ drinking alcohol, not │ motor vehicle WITHIN TWO HOURS │ │ │ counting small tastes or │ AFTER drinking alcoholic │ │ │ sips of alcohol. │ beverages? │ ├──────────────┼────────────────────────────┼─────────────────────────────────┤ │Region NE Mean│ 19.33│ 2│ │ ╶───────┼────────────────────────────┼─────────────────────────────────┤ │ MW Mean│ 19.83│ 2│ │ ╶───────┼────────────────────────────┼─────────────────────────────────┤ │ S Mean│ 20.29│ 2│ │ ╶───────┼────────────────────────────┼─────────────────────────────────┤ │ W Mean│ 19.87│ 2│ ╰──────────────┴────────────────────────────┴─────────────────────────────────╯ Custom Tables ╭──────────────┬─────┬────────────────────────────────────────────────────────╮ │ │ │ 35. In the past thirty days, how many times have you │ │ │ │ driven a motor vehicle WITHIN TWO HOURS AFTER drinking │ │ │QN19A│ alcoholic beverages? │ ├──────────────┼─────┼────────────────────────────────────────────────────────┤ │Region NE Mean│19.33│ 2│ │ ╶───────┼─────┼────────────────────────────────────────────────────────┤ │ MW Mean│19.83│ 2│ │ ╶───────┼─────┼────────────────────────────────────────────────────────┤ │ S Mean│20.29│ 2│ │ ╶───────┼─────┼────────────────────────────────────────────────────────┤ │ W Mean│19.87│ 2│ ╰──────────────┴─────┴────────────────────────────────────────────────────────╯ Custom Tables ╭──────────────┬─────────────────────────────────────────────────────────┬────╮ │ │ 19a. About how old were you when you first starting │ │ │ │ drinking alcohol, not counting small tastes or sips of │ │ │ │ alcohol. │qn35│ ├──────────────┼─────────────────────────────────────────────────────────┼────┤ │Region NE Mean│ 19.33│ 2│ │ ╶───────┼─────────────────────────────────────────────────────────┼────┤ │ MW Mean│ 19.83│ 2│ │ ╶───────┼─────────────────────────────────────────────────────────┼────┤ │ S Mean│ 20.29│ 2│ │ ╶───────┼─────────────────────────────────────────────────────────┼────┤ │ W Mean│ 19.87│ 2│ ╰──────────────┴─────────────────────────────────────────────────────────┴────╯ Custom Tables ╭──────────────┬───────╮ │Region NE Mean│19.33 2│ │ ╶───────┼───────┤ │ MW Mean│19.83 2│ │ ╶───────┼───────┤ │ S Mean│20.29 2│ │ ╶───────┼───────┤ │ W Mean│19.87 2│ ╰──────────────┴───────╯ ]) AT_CLEANUP AT_SETUP([CTABLES with SPLIT FILE]) AT_CHECK([ln $top_srcdir/tests/language/commands/nhtsa.sav . || cp $top_srcdir/tests/language/commands/nhtsa.sav .]) AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. SORT CASES BY qns3a. CTABLES /TABLE qn105ba. * Layered split has no effect on output. SPLIT FILE BY qns3a. CTABLES /TABLE qn105ba. * Add column variable qns3a to compare against separate splits. CTABLES /TABLE qn105ba BY qns3a. * Separate splits are truly output separately. SPLIT FILE SEPARATE BY qns3a. CTABLES /TABLE qn105ba. ]]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────────────────────────────┼─────┤ │105b. How likely is it that drivers who have had too much Almost │ 700│ │to drink to drive safely will A. Get stopped by the police? certain │ │ │ Very likely │ 1502│ │ Somewhat │ 2763│ │ likely │ │ │ Somewhat │ 1307│ │ unlikely │ │ │ Very │ 609│ │ unlikely │ │ ╰────────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────────────────────────────┼─────┤ │105b. How likely is it that drivers who have had too much Almost │ 700│ │to drink to drive safely will A. Get stopped by the police? certain │ │ │ Very likely │ 1502│ │ Somewhat │ 2763│ │ likely │ │ │ Somewhat │ 1307│ │ unlikely │ │ │ Very │ 609│ │ unlikely │ │ ╰────────────────────────────────────────────────────────────────────────┴─────╯ Custom Tables ╭─────────────────────────────────────────────────────────────────┬────────────╮ │ │S3a. GENDER:│ │ ├─────┬──────┤ │ │ Male│Female│ │ ├─────┼──────┤ │ │Count│ Count│ ├─────────────────────────────────────────────────────────────────┼─────┼──────┤ │105b. How likely is it that drivers who have had too Almost │ 297│ 403│ │much to drink to drive safely will A. Get stopped by certain │ │ │ │the police? Very likely │ 660│ 842│ │ Somewhat │ 1174│ 1589│ │ likely │ │ │ │ Somewhat │ 640│ 667│ │ unlikely │ │ │ │ Very │ 311│ 298│ │ unlikely │ │ │ ╰─────────────────────────────────────────────────────────────────┴─────┴──────╯ Split Values ╭────────────┬─────╮ │Variable │Value│ ├────────────┼─────┤ │S3a. GENDER:│Male │ ╰────────────┴─────╯ Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────────────────────────────┼─────┤ │105b. How likely is it that drivers who have had too much Almost │ 297│ │to drink to drive safely will A. Get stopped by the police? certain │ │ │ Very likely │ 660│ │ Somewhat │ 1174│ │ likely │ │ │ Somewhat │ 640│ │ unlikely │ │ │ Very │ 311│ │ unlikely │ │ ╰────────────────────────────────────────────────────────────────────────┴─────╯ Split Values ╭────────────┬──────╮ │Variable │ Value│ ├────────────┼──────┤ │S3a. GENDER:│Female│ ╰────────────┴──────╯ Custom Tables ╭────────────────────────────────────────────────────────────────────────┬─────╮ │ │Count│ ├────────────────────────────────────────────────────────────────────────┼─────┤ │105b. How likely is it that drivers who have had too much Almost │ 403│ │to drink to drive safely will A. Get stopped by the police? certain │ │ │ Very likely │ 842│ │ Somewhat │ 1589│ │ likely │ │ │ Somewhat │ 667│ │ unlikely │ │ │ Very │ 298│ │ unlikely │ │ ╰────────────────────────────────────────────────────────────────────────┴─────╯ ]) AT_CLEANUP AT_SETUP([CTABLES variable level inference]) AT_DATA([data.txt], [dnl dnl n1 has 10 unique small values -> nominal. dnl n2 has 23 unique small values -> nominal. dnl n3 is all missing -> nominal. dnl s1 has 24 unique small values -> scale. dnl s2 has one negative value -> scale. dnl s3 has one non-integer value -> scale. dnl s4 has no valid values less than 10 -> scale. dnl s5 has no valid values less than 10,000 -> scale. 1 1 . 1 1 1 10 10001 2 2 . 2 2 2 11 10002 3 3 . 3 3 3 12 10003 4 4 . 4 4 4 13 10004 5 5 . 5 5 5 14 10005 6 6 . 6 6 6 15 10006 7 7 . 7 7 7 16 10007 8 8 . 8 8 8 17 10008 9 9 . 9 9 9 18 10009 10 10 . 10 10 10.5 19 110000 1 11 . 11 -1 1 11 10001 2 12 . 12 2 2 12 10002 3 13 . 13 3 3 13 10003 4 14 . 14 4 4 14 10004 5 15 . 15 5 5 15 10005 6 16 . 16 6 6 16 10006 7 17 . 17 7 7 17 10007 8 18 . 18 8 8 18 10008 9 19 . 19 9 9 19 10009 1 20 . 20 1 1 20 10001 2 21 . 21 2 2 21 10002 3 22 . 22 3 3 22 10003 4 23 . 23 4 4 23 10004 5 23 . 24 5 5 24 10005 6 23 . 24 6 6 25 10006 ]) AT_DATA([ctables.sps], [dnl DATA LIST LIST file='data.txt' NOTABLE /n1 to n3 s1 to s5. * Nominal formats (copied from data that will default to scale). COMPUTE n4=s1. COMPUTE n5=s1. FORMATS n4(WKDAY5) n5(MONTH5). * Scale formats (copied from data that will default to nominal). COMPUTE s6=n1. COMPUTE s7=n1. COMPUTE s8=n1. FORMATS s6(DOLLAR6.2) s7(CCA8.2) s8(DATETIME17). STRING string(A8). DISPLAY DICTIONARY. CTABLES /TABLE n1 + n2 + n3 + string + s1 + s2 + s3 + s4 + s5. DISPLAY DICTIONARY. ]) AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl Variables ╭──────┬────────┬──────────────┬─────┬─────┬─────────┬────────────┬────────────╮ │ │ │ Measurement │ │ │ │ │ │ │Name │Position│ Level │ Role│Width│Alignment│Print Format│Write Format│ ├──────┼────────┼──────────────┼─────┼─────┼─────────┼────────────┼────────────┤ │n1 │ 1│Unknown │Input│ 8│Right │F8.2 │F8.2 │ │n2 │ 2│Unknown │Input│ 8│Right │F8.2 │F8.2 │ │n3 │ 3│Unknown │Input│ 8│Right │F8.2 │F8.2 │ │s1 │ 4│Unknown │Input│ 8│Right │F8.2 │F8.2 │ │s2 │ 5│Unknown │Input│ 8│Right │F8.2 │F8.2 │ │s3 │ 6│Unknown │Input│ 8│Right │F8.2 │F8.2 │ │s4 │ 7│Unknown │Input│ 8│Right │F8.2 │F8.2 │ │s5 │ 8│Unknown │Input│ 8│Right │F8.2 │F8.2 │ │n4 │ 9│Unknown │Input│ 8│Right │WKDAY5 │WKDAY5 │ │n5 │ 10│Unknown │Input│ 8│Right │MONTH5 │MONTH5 │ │s6 │ 11│Unknown │Input│ 8│Right │DOLLAR6.2 │DOLLAR6.2 │ │s7 │ 12│Unknown │Input│ 8│Right │CCA8.2 │CCA8.2 │ │s8 │ 13│Unknown │Input│ 8│Right │DATETIME17.0│DATETIME17.0│ │string│ 14│Nominal │Input│ 8│Left │A8 │A8 │ ╰──────┴────────┴──────────────┴─────┴─────┴─────────┴────────────┴────────────╯ Custom Tables ╭────────────┬─────┬────────╮ │ │Count│ Mean │ ├────────────┼─────┼────────┤ │n1 1.00 │ 3│ │ │ 2.00 │ 3│ │ │ 3.00 │ 3│ │ │ 4.00 │ 3│ │ │ 5.00 │ 3│ │ │ 6.00 │ 3│ │ │ 7.00 │ 2│ │ │ 8.00 │ 2│ │ │ 9.00 │ 2│ │ │ 10.00│ 1│ │ ├────────────┼─────┼────────┤ │n2 1.00 │ 1│ │ │ 2.00 │ 1│ │ │ 3.00 │ 1│ │ │ 4.00 │ 1│ │ │ 5.00 │ 1│ │ │ 6.00 │ 1│ │ │ 7.00 │ 1│ │ │ 8.00 │ 1│ │ │ 9.00 │ 1│ │ │ 10.00│ 1│ │ │ 11.00│ 1│ │ │ 12.00│ 1│ │ │ 13.00│ 1│ │ │ 14.00│ 1│ │ │ 15.00│ 1│ │ │ 16.00│ 1│ │ │ 17.00│ 1│ │ │ 18.00│ 1│ │ │ 19.00│ 1│ │ │ 20.00│ 1│ │ │ 21.00│ 1│ │ │ 22.00│ 1│ │ │ 23.00│ 3│ │ ├────────────┼─────┼────────┤ │string │ 25│ │ ├────────────┼─────┼────────┤ │s1 │ │ 12.96│ ├────────────┼─────┼────────┤ │s2 │ │ 4.76│ ├────────────┼─────┼────────┤ │s3 │ │ 4.86│ ├────────────┼─────┼────────┤ │s4 │ │ 16.60│ ├────────────┼─────┼────────┤ │s5 │ │14004.44│ ╰────────────┴─────┴────────╯ Variables ╭──────┬────────┬──────────────┬─────┬─────┬─────────┬────────────┬────────────╮ │ │ │ Measurement │ │ │ │ │ │ │Name │Position│ Level │ Role│Width│Alignment│Print Format│Write Format│ ├──────┼────────┼──────────────┼─────┼─────┼─────────┼────────────┼────────────┤ │n1 │ 1│Nominal │Input│ 8│Right │F8.2 │F8.2 │ │n2 │ 2│Nominal │Input│ 8│Right │F8.2 │F8.2 │ │n3 │ 3│Nominal │Input│ 8│Right │F8.2 │F8.2 │ │s1 │ 4│Scale │Input│ 8│Right │F8.2 │F8.2 │ │s2 │ 5│Scale │Input│ 8│Right │F8.2 │F8.2 │ │s3 │ 6│Scale │Input│ 8│Right │F8.2 │F8.2 │ │s4 │ 7│Scale │Input│ 8│Right │F8.2 │F8.2 │ │s5 │ 8│Scale │Input│ 8│Right │F8.2 │F8.2 │ │n4 │ 9│Nominal │Input│ 8│Right │WKDAY5 │WKDAY5 │ │n5 │ 10│Nominal │Input│ 8│Right │MONTH5 │MONTH5 │ │s6 │ 11│Scale │Input│ 8│Right │DOLLAR6.2 │DOLLAR6.2 │ │s7 │ 12│Scale │Input│ 8│Right │CCA8.2 │CCA8.2 │ │s8 │ 13│Scale │Input│ 8│Right │DATETIME17.0│DATETIME17.0│ │string│ 14│Nominal │Input│ 8│Left │A8 │A8 │ ╰──────┴────────┴──────────────┴─────┴─────┴─────────┴────────────┴────────────╯ ]) AT_CLEANUP