Crosstabulation
Crosstabulation is used to display the common distribution of two variables. In addition, tests of significance and measures of assocation may be requested.
Two variables
tab var17 var18
(with tab
being an abbreviation for tabulate
) will display a crosstabulation with counts only.
tab var17 var18, col
will display column percentages in addition to counts.
tab var17 var18, row nofreq gamma
will display row percentages, but no counts. In addition, Goodman and Kruskal's gamma together with its ASE will be displayed.
Other options to be added after the colon include:

chi2
: Pearson's chi squared statistic 
cchi2
: Each cell's contribution to the chi squared statistic 
lrchi2
: Likelihood chisquared statistic (not displayed if at least one cell does not contain an entry) 
exact
: Significance according to Fisher's exact test 
cell
: relative frequencies 
expected
: n of observations expected under the assumption of independence 
taub
: Tau b measure of association 
V
: Cramer's V
Note that for estimation of Kendall's taub, there is also a special procedure, ktau
, about which you can find more in the entry on correlations.
Note also the following options that refer to the display and/or output of the table:

m
ormissing
: Missing values will be treated like any other value 
nol
ornolabel
: The values of the variable are displayed instead of the labels 
nof
: This was already mentioned above in its long form, nofreq. If used without any other option, nothing will be displayed!
Probability weights
Probability weights can be used with twoway crosstables via the svy prefix. Most of the options described above will not be available in this case. Note that with option col
, estimates of the column proportions will be computed, whereas without this option, the proportions estimated will refer to the entire sample. In other words, in the latter case the proportions of the entire table will sum up to 1.
Tables with more than two dimensions
For higherdimensional crosstabulations the by
prefix may be used.
Alternatively you may use the table
command, but this way you can obtain only frequency counts (and summary statistics, see entry on summarize) but no percentages. A threedimensional table would look like this:
table education gender country
Tables with even more dimensions can be created using the by
option, as in:
table education gender age, by(country)
Up to four variables may be included via by
. Alternatively, the by
prefix may be used. Finally, with the help of foreach
(not covered in this guide) a table can be repeated for a number of conditions.
Tables with two dimensions for more than two variables
Instead of tab
we may use tab2
. With this command, more than two variables can be specified.
tab2 up85 up8601 up8602 up8603, row col taub
will produce all possible crosstabulations between the variables mentioned. Note the following useful option:
tab2 up85 up8601 up8602 up8603, firstonly row col taub
Here, all crosstabulations of up85 with the remaining variables will be displayed, with up85 as the row variable.
© W. LudwigMayerhofer, Stata Guide  Last update: 23 Apr 2017