SED navigation bar go to SED home page go to Dataplot home page go to NIST home page SED Home Page SED Staff SED Projects SED Products and Publications Search SED Pages
Dataplot Vol 2 Vol 1

CROSS TABULATE (LET)

Name:
    CROSS TABULATE (LET)
Type:
    Let Subcommand
Purpose:
    Cross tabulate a variable by 0, 1, or 2 factor variables and place the value of the computed statistic in the new array.
Description:
    This command is related to the CROSS TABULATE analysis command and the CROSS TABULATE PLOT command. Those commands also compute statistics for cross tabulations.

    The distinction is that those commands compute one value of the staistic for unique cell in the cross tabulation. This command creates a new array of the same size as the input arrays and replaces ALL rows in the new array with the computed statistic corresponding to the cell in the cross tabulation.

    The reason for this command is to allow the cross tabulated values to be used in subsequent calculations. For example, you could use this command to subtract the cell mean and divide by the cell standard deviation. Although you can perform this particular computation using the STANDARDIZE command, it does illustrate how this command is intended to be used. In particular, it can helpful in computing statistics for one or two group variables that are not currently supported by the STATISTIC PLOT or CROSS TABULATE PLOT commands.

    An alternative to computing a single value of the statistic for each cell in the cross tabulaton is compute the cumulative value of the statistic for all elements in the cell.

Syntax 1:
    LET <yout> = CROSS TABULATE <stat> <y1> ... <yk> <x1> ... <xl>
                            <SUBSET/EXCEPT/FOR qualification>
    where <stat> is one of the supported statistics (HELP STATISTICS for a list;
                <y1> ... <yk> is a list of 1 to 3 response variables (depending on what <stat> is);
                <x1> ... <xl> is a list of 0 to 4 group-id variables;
                <yout> is a variable where the cross tabulated values are stored;
    and where the <SUBSET/EXCEPT/FOR qualification> is optional.
Syntax 2:
    LET <yout> = CROSS TABULATE CUMULATIVE <stat> <y1> ... <yk>
                            <x1> ... <xl>
                            <SUBSET/EXCEPT/FOR qualification>
    where <stat> is one of the supported statistics (HELP STATISTICS for a list;
                <y1> ... <yk> is a list of 1 to 3 response variables (depending on what <stat> is);
                <x1> ... <xl> is a list of 0 to 4 group-id variables;
                <yout> is a variable where the cross tabulated values are stored;
    and where the <SUBSET/EXCEPT/FOR qualification> is optional.

    This syntax computes the cumulative value of the statistic.

Examples:
    LET Y2 = CROSS TABULATE X
    LET Y2 = CROSS TABULATE MEAN Y X1
    LET Y2 = CROSS TABULATE MEAN Y X1 X2
    LET Y2 = CROSS TABULATE CUMULATIVE MEAN Y X1
    LET Y2 = CROSS TABULATE MEAN Y X1 X2 SUBSET X1 = 1 TO 3
Note:
    By default, the output variable will have the same number of elements as the input variables. However, if you enter the command

      SET LET CROSS TABULATE COLLAPSE

    only a single value will be saved in the output variable for each distinct combination of the group-id variables.

    In order to preserve the appropriate values of the group-id variables, you can enter the commands (assuming four group-id variables)

      LET X1D = CROSS TABULATE GROUP ONE X1 X2 X3 X4
      LET X2D = CROSS TABULATE GROUP TWO X1 X2 X3 X4
      LET X3D = CROSS TABULATE GROUP THREE X1 X2 X3 X4
      LET X4D = CROSS TABULATE GROUP FOUR X1 X2 X3 X4

    This is demonstrated in Program 2 example below.

    To restore the default, enter

      SET LET CROSS TABULATE EXPAND

    This option is not supported for the CUMULATIVE (Syntax 2) option.

Note:
    If you use the SET LET CROSS TABULATE COLLAPSE command, the number of elements in the output variable will equal to the number unique combinations of the group-id variables.

    For example, if X1 has the uniques values 1, 2, and 3 and X2 has the unique values 1 and 2, there are 6 potential cells

      X1 X2
      1 1
      1 2
      2 1
      2 2
      3 1
      3 2

    However, the X1 and X2 variables may not actually contain all of these potential combinations (i.e., you only have a partial grid of values).

    There may be some cases where you want the output variable to contain a value for the full grid of the group-id variables. To specify this, enter the command

      SET LET CROSS TABULATE EMPTY ON

    In this case, empty cells in the grid will be set the "missing value". To specify this value, enter the command

      LET STATISTIC MISSING VALUE <value>

    To restore the default behavior, enter

      SET LET CROSS TABULATE EMPTY OFF

    This option is not supported for the CUMULATIVE (Syntax 2) option.

Note:
    The following command was implemented

      SET LET CROSS TABULATE COMPLEMENT <OFF/ON/ONE/TWO>

    where

      OFF default behavior, extract data as defined by the group-id variables.
      ON for the last group-id variable, extract all data that is not equal to the specified group value.
      ONE for the last group-id variable, the first response variable will extract the values not equal to the specified group-id value and the second response variable will extract the values equal to the specified group value.
      TWO for the last group-id variable, the first response variable will extract the values equal to the specified group-id value and the second response variable will extract the values not equal to the specified group value.

    This option is not supported for the CUMULATIVE (Syntax 2) option.

Default:
    None
Synonyms:
    None
Related Commands:
    MEAN PLOT = Generate a mean versus subset plot.
    SD PLOT = Generate a standard deviation versus subset plot.
    CROSS TABULATE = Compute group statistics (two group variables).
    CROSS TABULATE PLOT = Generate a statistic versus (two) subset variables.
Applications:
    Data Analysis
Implementation Date:
    2001/10
    2002/8: List of supported statistics expanded
    2003/3: Support added for "WEIGHTED" and "DIFFERENCE OF" statistics.
    2009/2: Support COLLAPSE option
    2011/7: Support for SET LET CROSS TABULATE EMPTY
    2011/7: Support for SET LET CROSS TABULATE COMPLEMENT
    2013/1: Support for CUMULATIVE option
Program 1:
     
    SKIP 25
    READ GEAR.DAT Y X
    LET YMED = CROSS TABULATE MEAN Y X
    LET YIQ = CROSS TABULATE IQ RANGE Y X
    LET YSTAND = (Y - YMED)/YIQ
    SET WRITE DECIMALS 5
    PRINT X Y YSTAND
        
    The following output is generated
     
    ---------------------------------------------
                  X              Y         YSTAND
    ---------------------------------------------
            1.00000        1.00600        1.18518
            1.00000        0.99600       -0.29629
            1.00000        0.99800        0.00000
            1.00000        1.00000        0.29629
            1.00000        0.99200       -0.88888
            1.00000        0.99300       -0.74074
            1.00000        1.00200        0.59259
            1.00000        0.99900        0.14814
            1.00000        0.99400       -0.59259
            1.00000        1.00000        0.29629
            2.00000        0.99800       -0.17599
            2.00000        1.00600        1.10399
            2.00000        1.00000        0.14399
            2.00000        1.00200        0.46399
            2.00000        0.99700       -0.33599
            2.00000        0.99800       -0.17599
            2.00000        0.99600       -0.49599
            2.00000        1.00000        0.14399
            2.00000        1.00600        1.10399
            2.00000        0.98800       -1.77599
            3.00000        0.99100       -0.76521
            3.00000        0.98700       -1.46086
            3.00000        0.99700        0.27826
            3.00000        0.99900        0.62608
            3.00000        0.99500       -0.06956
            3.00000        0.99400       -0.24347
            3.00000        1.00000        0.80000
            3.00000        0.99900        0.62608
            3.00000        0.99600        0.10434
            3.00000        0.99600        0.10434
            4.00000        1.00499        0.93793
            4.00000        1.00200        0.52413
            4.00000        0.99400       -0.57931
            4.00000        1.00000        0.24827
            4.00000        0.99500       -0.44137
            4.00000        0.99400       -0.57931
            4.00000        0.99800       -0.02758
            4.00000        0.99600       -0.30344
            4.00000        1.00200        0.52413
            4.00000        0.99600       -0.30344
            5.00000        0.99800        0.42068
            5.00000        0.99800        0.42068
            5.00000        0.98200       -0.68275
            5.00000        0.99000       -0.13103
            5.00000        1.00200        0.69655
            5.00000        0.98400       -0.54482
            5.00000        0.99600        0.28275
            5.00000        0.99300        0.07586
            5.00000        0.98000       -0.82068
            5.00000        0.99600        0.28275
            6.00000        1.00899        0.64761
            6.00000        1.01299        0.90158
            6.00000        1.00899        0.64761
            6.00000        0.99700       -0.11428
            6.00000        0.98800       -0.68571
            6.00000        1.00200        0.20317
            6.00000        0.99500       -0.24126
            6.00000        0.99800       -0.05079
            6.00000        0.98100       -1.13015
            6.00000        0.99600       -0.17777
            7.00000        0.99000       -1.21052
            7.00000        1.00400        0.26315
            7.00000        0.99600       -0.57894
            7.00000        1.00099       -0.05263
            7.00000        0.99800       -0.36842
            7.00000        1.00000       -0.15789
            7.00000        1.01800        1.73684
            7.00000        1.01000        0.89473
            7.00000        0.99600       -0.57894
            7.00000        1.00200        0.05263
            8.00000        0.99800       -0.43636
            8.00000        1.00000       -0.07272
            8.00000        1.00600        1.01818
            8.00000        1.00000       -0.07272
            8.00000        1.00200        0.29090
            8.00000        0.99600       -0.79999
            8.00000        0.99800       -0.43636
            8.00000        0.99600       -0.79999
            8.00000        1.00200        0.29090
            8.00000        1.00600        1.01818
            9.00000        1.00200        0.54814
            9.00000        0.99800       -0.04444
            9.00000        0.99600       -0.34074
            9.00000        0.99500       -0.48888
            9.00000        0.99600       -0.34074
            9.00000        1.00400        0.84444
            9.00000        1.00400        0.84444
            9.00000        0.99800       -0.04444
            9.00000        0.99900        0.10370
            9.00000        0.99100       -1.08148
           10.00000        0.99100       -0.60799
           10.00000        0.99500        0.03200
           10.00000        0.98400       -1.72799
           10.00000        0.99400       -0.12799
           10.00000        0.99700        0.35200
           10.00000        0.99700        0.35200
           10.00000        0.99100       -0.60799
           10.00000        0.99800        0.51200
           10.00000        1.00400        1.47200
           10.00000        0.99700        0.35200
        
Program 2:
     
    SKIP 25
    READ GEAR.DAT Y X
    SET LET CROSS TABULATE COLLAPSE
    LET YMEAN = CROSS TABULATE MEAN Y X
    LET X1D = CROSS TABULATE GROUP ONE X
    SET WRITE DECIMALS 4
    PRINT X1D YMEAN
        
    The following output is generated
     
    ------------------------------
                X1D          YMEAN
    ------------------------------
             1.0000         0.9980
             2.0000         0.9991
             3.0000         0.9954
             4.0000         0.9982
             5.0000         0.9919
             6.0000         0.9988
             7.0000         1.0015
             8.0000         1.0003
             9.0000         0.9982
            10.0000         0.9947
        
Program 3:
     
    SKIP 25
    READ GEAR.DAT Y X
    LET N = SIZE Y
    LET X2 = SEQUENCE 1 1 N
    .
    LET YMEAN = CROSS TABULATE CUMULATIVE MEAN Y X
    .
    SET WRITE DECIMALS 4
    PRINT X Y YMEAN
    .
    LINE COLOR BLUE RED GREEN BLUE RED GREEN BLUE RED GREEN BLUE
    LABEL CASE ASIS
    Y1LABEL Cumulative Mean Gear Diameter
    X1LABEL Batch
    .
    PLOT YMEAN X2 X
        
    plot generated by sample program

Date created: 10/5/2001
Last updated: 1/8/2013
Please email comments on this WWW page to alan.heckert@nist.gov.