+@node CTABLES Scalar Variable Basics, CTABLES Overriding Measurement Level, CTABLES Categorical Variable Basics, CTABLES Basics
+@subsubsection Scalar Variables
+
+Categorical variables make @code{CTABLES} divide tables into cells.
+With scalar variables, @code{CTABLES} instead calculates a summary
+measure, by default the mean, of the values that fall into a cell.
+For example, if the only variable specified is a scalar variable, then
+the output is a single cell that holds the mean of all of the data:
+
+@example
+CTABLES /TABLE qnd1.
+@end example
+@psppoutput {ctables6}
+
+A scalar variable may nest with categorical variables. The following
+example shows the mean age of survey respondents across gender and
+language groups:
+
+@example
+CTABLES /TABLE qns3a > qnd1 BY region.
+@end example
+@psppoutput {ctables7}
+
+The order of nesting of scalar and categorical variables affects table
+labeling, but it does not affect the data displayed in the table. The
+following example shows how the output changes when the nesting order
+of the scalar and categorical variable are interchanged:
+
+@example
+CTABLES /TABLE qnd1 > qns3a BY region.
+@end example
+@psppoutput {ctables8}
+
+Only a single scalar variable may appear in each section; that is, a
+scalar variable may not nest inside a scalar variable directly or
+indirectly. Scalar variables may only appear on one axis within
+@code{TABLE}.
+
+@node CTABLES Overriding Measurement Level, CTABLES Multiple Response Sets, CTABLES Scalar Variable Basics, CTABLES Basics
+@subsubsection Overriding Measurement Level
+
+By default, @code{CTABLES} uses a variable's measurement level to
+decide whether to treat it as categorical or scalar. Variables
+assigned the nominal or ordinal measurement level are treated as
+categorical, and scalar variables are treated as scalar.
+
+Use the @code{VARIABLE LEVEL} command to change a variable's
+measurement level. To treat a variable as categorical or scalar only
+for one use on @code{CTABLES}, add @samp{[C]} or @samp{[S]},
+respectively, after the variable name. The following example shows
+how to analyze the scalar variable @code{qn20} as categorical:
+
+@example
+CTABLES /TABLE qn20 [C] BY qns3a.
+@end example
+@psppoutput {ctables9}
+
+@node CTABLES Multiple Response Sets, , CTABLES Overriding Measurement Level, CTABLES Basics
+@subsubheading Multiple Response Sets
+
+The @code{CTABLES} command does not yet support multiple response
+sets.
+
+@node CTABLES Data Summarization, , CTABLES Basics, CTABLES
+@subsection Data Summarization
+
+The @code{CTABLES} command allows the user to control how the data are
+summarized with summary specifications, which are enclosed in square
+brackets following a variable name on the @code{TABLE} subcommand.
+When all the variables are categorical, summary specifications can be
+given for the innermost nested variables on any one axis. When a
+scalar variable is present, only the scalar variable may have summary
+specifications. The following example includes a summary
+specification for column and row percentages for categorical
+variables, and mean and median for a scalar variable:
+
+@example
+CTABLES
+ /TABLE=qnd1 [MEAN, MEDIAN] BY qns3a
+ /TABLE=AgeGroup [COLPCT, ROWPCT] BY qns3a.
+@end example
+@psppoutput {ctables10}
+
+A summary specification may override the default label and format by
+appending a string or format specification or both (in that order) to
+the summary function name. For example:
+
+@example
+CTABLES /TABLE=AgeGroup [COLPCT 'Gender %' PCT5.0,
+ ROWPCT 'Age Group %' PCT5.0]
+ BY qns3a.
+@end example
+@psppoutput {ctables11}
+
+Parentheses are a shorthand to apply summary specifications to
+multiple variables. For example, both of these commands:
+
+@example
+CTABLES /TABLE=AgeGroup[COLPCT] + qns1[COLPCT] BY qns3a.
+CTABLES /TABLE=(AgeGroup + qns1)[COLPCT] BY qns3a.
+@end example
+
+@noindent
+produce the same output shown below:
+
+@psppoutput {ctables12}
+
+The following sections list the available summary functions.
+
+@menu
+* CTABLES Summary Functions for Categorical and Scale Variables::
+@end menu
+
+@node CTABLES Summary Functions for Categorical and Scale Variables, , CTABLES Data Summarization, CTABLES Data Summarization
+@subsubsection Summary Functions for Categorical and Scale Variables
+
+This section lists the summary functions that can be applied to cells
+in @code{CTABLES}. Many of these functions have an @var{area} in
+their names. Some @var{area}s correspond to parts of @dfn{subtables},
+whose contents are the cells that pair an innermost row variable and
+an innermost column variable:
+
+@table @code
+@item ROW
+A row within a subtable.
+
+@item COL
+A column within a subtable.
+
+@item SUBTABLE
+All the cells in a subtable
+@end table
+
+Other areas correspond to parts of @dfn{sections}, where stacked
+variables divide each section from another:
+
+@table @code
+@item TABLE
+An entire section.
+
+@item LAYER
+A layer within a section.
+
+@item LAYERROW
+A row in one layer within a section.
+
+@item LAYERCOL
+A column in one layer within a section.
+@end table
+
+The following summary functions may be applied to any variable
+regardless of whether it is categorical or scalar.
+
+@table @asis
+@item @code{COUNT}
+@itemx @code{ECOUNT}
+The sum of weights in a cell (the number of cases, for an unweighted
+dataset). For @code{ECOUNT}, if the @code{WEIGHT} subcommand
+specified an adjustment weight variable, its sum is used.
+
+@item @i{area}@code{PCT} or @i{area}@code{PCT.COUNT}
+A percentage within the specified @var{area}.
+
+@item @i{area}@code{PCT.VALIDN}
+A percentage of valid values within the specified @var{area}.
+
+@item @i{area}@code{PCT.TOTALN}
+A percentage of total values within the specified @var{area}.
+@end table
+
+The following summary functions apply only to scale variables:
+
+@table @asis
+@item @code{MAXIMUM}
+The largest value.
+
+@item @code{MEAN}
+The mean.
+
+@item @code{MEDIAN}
+The median value.
+
+@item @code{MINIMUM}
+The smallest value.
+
+@item @code{MISSING}
+Sum of weights of user- and system-missing values.
+
+@item @code{MODE}
+The highest-frequency value. Ties are broken by taking the smallest mode.
+
+@item @i{area}@code{PCT.SUM}
+Percentage of the sum of the values across @var{area}.
+
+@item @code{PTILE} @i{n}
+The @var{n}th percentile, where @math{0 @leq{} @var{n} @leq{} 100}.
+
+@item @code{RANGE}
+The maximum minus the minimum.
+
+@item @code{SEMEAN}
+The standard error of the mean.
+
+@item @code{STDDEV}
+The standard deviation.
+
+@item @code{SUM}
+The sum.
+
+@item @code{TOTALN}
+@itemx @code{ETOTALN}
+The sum of total count weights. For @code{ETOTALN}, if the
+@code{WEIGHT} subcommand specified an adjustment weight variable, its
+sum is used.
+
+@item @code{VALIDN}
+@itemx @code{EVALIDN}
+The sum of valid count weights. For @code{ETOTALN}, if the
+@code{WEIGHT} subcommand specified an adjustment weight variable, its
+sum is used.
+
+@item @code{VARIANCE}
+The variance.
+@end table
+
+
+@node FACTOR, GLM, CTABLES, Statistics