Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Challenging layout modification using Tables/collect command


    I am attempting to use the new Tables/collect features of Stata 17.

    I have 7 race variables encoded 0 "No" 1 "Yes". I have managed to create a table with a stacked layout that drops the "No" values for each race variable, as they are redundant.

    However, I am having difficulty figuring out how to combine those race variables to appear as though they are levels under a single dimension. Is that even possible?

    In other words, How do I go from this:
    Code:
    ----------------------------------------------------------
                                           Frequency   Percent
    ----------------------------------------------------------
    
    Age - [Mean (SD)]                          30.62    (5.26)
    Age - [Min Max]                               15        60
    Sex                                                       
      Female                                    1757    85.96%
      Male                                       124     6.07%
      Unknown                                    163     7.97%
    Race: White                                               
      Yes                                        451    72.16%
    Race: Black                                               
      Yes                                        110    17.60%
    ...
    To this:

    Code:
    ----------------------------------------------------------
                                           Frequency   Percent
    ----------------------------------------------------------
    
    Age - [Mean (SD)]                          30.62    (5.26)
    Age - [Min Max]                               15        60
    Sex                                                       
      Female                                    1757    85.96%
      Male                                       124     6.07%
      Unknown                                    163     7.97%
    Race                                              
      White                                      451    72.16%
      Black                                      110    17.60%
    ...
    Subjects were able to endorse more than one race, so generating a new composite variable from the individual race variables is not an option.

    Here is more info about the collection:

    Code:
    . collect dims
    
    Collection dimensions
    Collection: Table
    -----------------------------------------
                       Dimension   No. levels
    -----------------------------------------
    Layout, style, header, label
                          cmdset   1         
                         colname   50        
                         command   1         
                          result   6         
                         statcmd   6         
                             var   50        
    
    Header, label
                     resp_gender
                 resp_race_white
                 resp_race_black
                 ...
                 
    Style only
                    border_block   4         
                       cell_type   4         
    -----------------------------------------
    
    . collect levelsof var
    
    Collection: Table
     Dimension: var
        Levels: resp_age resp_age_minmax
                0.resp_gender 1.resp_gender 2.resp_gender 0.resp_race_white
                1.resp_race_white 0.resp_race_black 1.resp_race_black ...

  • #2
    you say, "Subjects were able to endorse more than one race, so generating a new composite variable from the individual race variables is not an option." you could always make a category called "multi-racial" for those that endorsed more than 1 race and that would be an easy "solution" to your -collect tables- issue; as a byproduct, your numbers would now add to the correct total which they will not do if you double-count them as you seem to want to do

    Comment


    • #3
      Thank you for responding, Rich. I do not want to to go the "multi-racial" category route.

      I would very much like to know if and how one might use collect to to manipulate the row headers to achieve the virtual race variable I describe in the OP. This is more a question of how to achieve a certain presentation than how to construct an actual variable. If anyone has had any success doing something like that with this very new -and cool- feature, I would love to see how it is done.

      Comment


      • #4
        Short answer:

        You can collect recode the race indicators to be levels of a common race factor in the collection.

        Long example:

        I want to show how this can be done, so I simulated a dataset similar to Paul's.
        Code:
        * simulate some data
        set seed 17
        set obs 2044
        gen age = runiformint(15,60)
        label var age "Age"
        gen sex = runiform() > .85
        replace sex = 2 if runiform() > .95
        label var sex "Sex"
        label define sex 0 "Female" 1 "Male" 2 "Unknown"
        label values sex sex
        label define noyes 0 "No" 1 "Yes"
        local k_x 7
        forvalues i = 1/`k_x' {
            gen x`i' = runiform() > .5
            label values x`i' noyes
        }
        
        * compute statistics
        table,    stat(mean age) stat(sd age) stat(min age) stat(max age) ///
            stat(fvfrequency sex) stat(fvpercent sex) ///
            stat(fvfrequency x*) stat(fvpercent x*)
        
        * first remove the vertical border
        collect style cell border_block, border(right, pattern(nil))
        collect preview
        
        * query dimensions in the layout
        collect layout
        collect label list result, all
        collect label list var, all
        
        * shorten some labels
        collect label levels result ///
            fvfrequency "Freq." ///
            fvpercent "Percent" ///
            sd "SD" ///
            min "Min" ///
            max "max" ///
            , modify
        collect preview
        
        * change layout
        collect layout (var) (result)
        
        * split age values so we can stack them
        collect recode var age = age_mu_sd, fortags(result[mean sd])
        collect recode var age = age_range, fortags(result[min max])
        collect preview
        
        * add labels for the new var levels
        collect label levels var ///
            age_mu_sd "Age - [Mean (SD)]" ///
            age_range "Age - [Min Max]"
        collect preview
        
        * realign columns
        collect recode result ///
            mean = column1 ///
            sd = column2 ///
            min = column1 ///
            max = column2 ///
            fvfrequency = column1 ///
            fvpercent = column2
        collect preview
        
        * oops, let's clear the autolevels for result to get a table
        collect style autolevels result, clear
        collect preview
        
        * label the new result levels
        collect label levels result column1 "Frequency" column2 "Percent"
        collect preview
        
        * format the age results
        collect style cell var[age_range], nformat(%5.0f)
        collect style cell var[age_mu_sd], nformat(%5.2f)
        collect style cell var[age_mu_sd]#result[column2], sformat("(%s)")
        collect preview
        
        * stack and unbind factor variables in the row headers
        collect style row stack, nobinder
        collect preview
        
        * recode the Yes levels of the x# factor variables to a single factor
        * variable
        forvalues i = 1/`k_x' {
            collect recode var 1.x`i' = `i'.x 
        }
        collect preview
        
        * update layout to select only the var levels we care about
        collect layout (var[age_mu_sd age_range i.sex i.x]) (result)
        
        * format the factor variable statistics
        collect style cell var[sex x]#result[column2], nformat(%5.2f) sformat("%s%%")
        collect preview
        
        * label var x and its levels
        collect label levels var x "Race"
        forvalues i = 1/`k_x' {
            collect label levels x `i' "Race label `i'"
        }
        collect preview
        
        * you can hide the column headers
        collect style header result, title(hide) level(hide)
        collect preview
        Here is a log of the above:
        Code:
        . * simulate some data
        . set seed 17
        
        . set obs 2044
        Number of observations (_N) was 0, now 2,044.
        
        . gen age = runiformint(15,60)
        
        . label var age "Age"
        
        . gen sex = runiform() > .85
        
        . replace sex = 2 if runiform() > .95
        (110 real changes made)
        
        . label var sex "Sex"
        
        . label define sex 0 "Female" 1 "Male" 2 "Unknown"
        
        . label values sex sex
        
        . label define noyes 0 "No" 1 "Yes"
        
        . local k_x 7
        
        . forvalues i = 1/`k_x' {
          2.         gen x`i' = runiform() > .5
          3.         label values x`i' noyes
          4. }
        
        . 
        . * compute statistics
        . table,  stat(mean age) stat(sd age) stat(min age) stat(max age) ///
        >         stat(fvfrequency sex) stat(fvpercent sex) ///
        >         stat(fvfrequency x*) stat(fvpercent x*)
        
        -------------------------------------
        Mean                      |          
          Age                     |  37.63796
        Standard deviation        |          
          Age                     |  13.03153
        Minimum value             |          
          Age                     |        15
        Maximum value             |          
          Age                     |        60
        Factor variable frequency |          
          Sex=Female              |     1,621
          Sex=Male                |       313
          Sex=Unknown             |       110
          x1=No                   |     1,053
          x1=Yes                  |       991
          x2=No                   |     1,027
          x2=Yes                  |     1,017
          x3=No                   |     1,027
          x3=Yes                  |     1,017
          x4=No                   |     1,042
          x4=Yes                  |     1,002
          x5=No                   |     1,021
          x5=Yes                  |     1,023
          x6=No                   |     1,007
          x6=Yes                  |     1,037
          x7=No                   |     1,010
          x7=Yes                  |     1,034
        Factor variable percent   |          
          Sex=Female              |     79.31
          Sex=Male                |     15.31
          Sex=Unknown             |      5.38
          x1=No                   |     51.52
          x1=Yes                  |     48.48
          x2=No                   |     50.24
          x2=Yes                  |     49.76
          x3=No                   |     50.24
          x3=Yes                  |     49.76
          x4=No                   |     50.98
          x4=Yes                  |     49.02
          x5=No                   |     49.95
          x5=Yes                  |     50.05
          x6=No                   |     49.27
          x6=Yes                  |     50.73
          x7=No                   |     49.41
          x7=Yes                  |     50.59
        -------------------------------------
        
        . 
        . * first remove the vertical border
        . collect style cell border_block, border(right, pattern(nil))
        
        . collect preview
        
        -----------------------------------
        Mean                               
          Age                      37.63796
        Standard deviation                 
          Age                      13.03153
        Minimum value                      
          Age                            15
        Maximum value                      
          Age                            60
        Factor variable frequency          
          Sex=Female                  1,621
          Sex=Male                      313
          Sex=Unknown                   110
          x1=No                       1,053
          x1=Yes                        991
          x2=No                       1,027
          x2=Yes                      1,017
          x3=No                       1,027
          x3=Yes                      1,017
          x4=No                       1,042
          x4=Yes                      1,002
          x5=No                       1,021
          x5=Yes                      1,023
          x6=No                       1,007
          x6=Yes                      1,037
          x7=No                       1,010
          x7=Yes                      1,034
        Factor variable percent            
          Sex=Female                  79.31
          Sex=Male                    15.31
          Sex=Unknown                  5.38
          x1=No                       51.52
          x1=Yes                      48.48
          x2=No                       50.24
          x2=Yes                      49.76
          x3=No                       50.24
          x3=Yes                      49.76
          x4=No                       50.98
          x4=Yes                      49.02
          x5=No                       49.95
          x5=Yes                      50.05
          x6=No                       49.27
          x6=Yes                      50.73
          x7=No                       49.41
          x7=Yes                      50.59
        -----------------------------------
        
        . 
        . * query dimensions in the layout
        . collect layout
        
        Collection: Table
              Rows: result#var
           Table 1: 44 x 1
        
        -----------------------------------
        Mean                               
          Age                      37.63796
        Standard deviation                 
          Age                      13.03153
        Minimum value                      
          Age                            15
        Maximum value                      
          Age                            60
        Factor variable frequency          
          Sex=Female                  1,621
          Sex=Male                      313
          Sex=Unknown                   110
          x1=No                       1,053
          x1=Yes                        991
          x2=No                       1,027
          x2=Yes                      1,017
          x3=No                       1,027
          x3=Yes                      1,017
          x4=No                       1,042
          x4=Yes                      1,002
          x5=No                       1,021
          x5=Yes                      1,023
          x6=No                       1,007
          x6=Yes                      1,037
          x7=No                       1,010
          x7=Yes                      1,034
        Factor variable percent            
          Sex=Female                  79.31
          Sex=Male                    15.31
          Sex=Unknown                  5.38
          x1=No                       51.52
          x1=Yes                      48.48
          x2=No                       50.24
          x2=Yes                      49.76
          x3=No                       50.24
          x3=Yes                      49.76
          x4=No                       50.98
          x4=Yes                      49.02
          x5=No                       49.95
          x5=Yes                      50.05
          x6=No                       49.27
          x6=Yes                      50.73
          x7=No                       49.41
          x7=Yes                      50.59
        -----------------------------------
        
        . collect label list result, all
        
          Collection: Table
           Dimension: result
               Label: Result
        Level labels:
         fvfrequency  Factor variable frequency
           fvpercent  Factor variable percent
                 max  Maximum value
                mean  Mean
                 min  Minimum value
                  sd  Standard deviation
        
        . collect label list var, all
        
          Collection: Table
           Dimension: var
               Label: Statistic option variable
        Level labels:
                 age  Age
                 sex  Sex
                  x1  
                  x2  
                  x3  
                  x4  
                  x5  
                  x6  
                  x7  
        
        . 
        . * shorten some labels
        . collect label levels result ///
        >         fvfrequency "Freq." ///
        >         fvpercent "Percent" ///
        >         sd "SD" ///
        >         min "Min" ///
        >         max "max" ///
        >         , modify
        
        . collect preview
        
        -----------------------
        Mean                   
          Age          37.63796
        SD                     
          Age          13.03153
        Min                    
          Age                15
        max                    
          Age                60
        Freq.                  
          Sex=Female      1,621
          Sex=Male          313
          Sex=Unknown       110
          x1=No           1,053
          x1=Yes            991
          x2=No           1,027
          x2=Yes          1,017
          x3=No           1,027
          x3=Yes          1,017
          x4=No           1,042
          x4=Yes          1,002
          x5=No           1,021
          x5=Yes          1,023
          x6=No           1,007
          x6=Yes          1,037
          x7=No           1,010
          x7=Yes          1,034
        Percent                
          Sex=Female      79.31
          Sex=Male        15.31
          Sex=Unknown      5.38
          x1=No           51.52
          x1=Yes          48.48
          x2=No           50.24
          x2=Yes          49.76
          x3=No           50.24
          x3=Yes          49.76
          x4=No           50.98
          x4=Yes          49.02
          x5=No           49.95
          x5=Yes          50.05
          x6=No           49.27
          x6=Yes          50.73
          x7=No           49.41
          x7=Yes          50.59
        -----------------------
        
        . 
        . * change layout
        . collect layout (var) (result)
        
        Collection: Table
              Rows: var
           Columns: result
           Table 1: 18 x 6
        
        --------------------------------------------------------------
                         Mean         SD   Min   max   Freq.   Percent
        --------------------------------------------------------------
        Age          37.63796   13.03153    15    60                  
        Sex=Female                                     1,621     79.31
        Sex=Male                                         313     15.31
        Sex=Unknown                                      110      5.38
        x1=No                                          1,053     51.52
        x1=Yes                                           991     48.48
        x2=No                                          1,027     50.24
        x2=Yes                                         1,017     49.76
        x3=No                                          1,027     50.24
        x3=Yes                                         1,017     49.76
        x4=No                                          1,042     50.98
        x4=Yes                                         1,002     49.02
        x5=No                                          1,021     49.95
        x5=Yes                                         1,023     50.05
        x6=No                                          1,007     49.27
        x6=Yes                                         1,037     50.73
        x7=No                                          1,010     49.41
        x7=Yes                                         1,034     50.59
        --------------------------------------------------------------
        
        . 
        . * split age values so we can stack them
        . collect recode var age = age_mu_sd, fortags(result[mean sd])
        (2 items recoded in collection Table)
        
        . collect recode var age = age_range, fortags(result[min max])
        (2 items recoded in collection Table)
        
        . collect preview
        
        --------------------------------------------------------------
                         Mean         SD   Min   max   Freq.   Percent
        --------------------------------------------------------------
        age_mu_sd    37.63796   13.03153                              
        age_range                           15    60                  
        Sex=Female                                     1,621     79.31
        Sex=Male                                         313     15.31
        Sex=Unknown                                      110      5.38
        x1=No                                          1,053     51.52
        x1=Yes                                           991     48.48
        x2=No                                          1,027     50.24
        x2=Yes                                         1,017     49.76
        x3=No                                          1,027     50.24
        x3=Yes                                         1,017     49.76
        x4=No                                          1,042     50.98
        x4=Yes                                         1,002     49.02
        x5=No                                          1,021     49.95
        x5=Yes                                         1,023     50.05
        x6=No                                          1,007     49.27
        x6=Yes                                         1,037     50.73
        x7=No                                          1,010     49.41
        x7=Yes                                         1,034     50.59
        --------------------------------------------------------------
        
        . 
        . * add labels for the new var levels
        . collect label levels var ///
        >         age_mu_sd "Age - [Mean (SD)]" ///
        >         age_range "Age - [Min Max]"
        
        . collect preview
        
        --------------------------------------------------------------------
                               Mean         SD   Min   max   Freq.   Percent
        --------------------------------------------------------------------
        Age - [Mean (SD)]  37.63796   13.03153                              
        Age - [Min Max]                           15    60                  
        Sex=Female                                           1,621     79.31
        Sex=Male                                               313     15.31
        Sex=Unknown                                            110      5.38
        x1=No                                                1,053     51.52
        x1=Yes                                                 991     48.48
        x2=No                                                1,027     50.24
        x2=Yes                                               1,017     49.76
        x3=No                                                1,027     50.24
        x3=Yes                                               1,017     49.76
        x4=No                                                1,042     50.98
        x4=Yes                                               1,002     49.02
        x5=No                                                1,021     49.95
        x5=Yes                                               1,023     50.05
        x6=No                                                1,007     49.27
        x6=Yes                                               1,037     50.73
        x7=No                                                1,010     49.41
        x7=Yes                                               1,034     50.59
        --------------------------------------------------------------------
        
        . 
        . * realign columns
        . collect recode result ///
        >         mean = column1 ///
        >         sd = column2 ///
        >         min = column1 ///
        >         max = column2 ///
        >         fvfrequency = column1 ///
        >         fvpercent = column2
        (38 items recoded in collection Table)
        
        . collect preview
        
        Your layout specification does not identify any items.
        
        . 
        . * oops, let's clear the autolevels for result to get a table
        . collect style autolevels result, clear
        
        . collect preview
        
        --------------------------------------
                            column1    column2
        --------------------------------------
        Age - [Mean (SD)]  37.63796   13.03153
        Age - [Min Max]          15         60
        Sex=Female             1621   79.30528
        Sex=Male                313   15.31311
        Sex=Unknown             110   5.381605
        x1=No                  1053   51.51663
        x1=Yes                  991   48.48337
        x2=No                  1027   50.24462
        x2=Yes                 1017   49.75538
        x3=No                  1027   50.24462
        x3=Yes                 1017   49.75538
        x4=No                  1042   50.97847
        x4=Yes                 1002   49.02153
        x5=No                  1021   49.95108
        x5=Yes                 1023   50.04892
        x6=No                  1007   49.26614
        x6=Yes                 1037   50.73386
        x7=No                  1010   49.41292
        x7=Yes                 1034   50.58708
        --------------------------------------
        
        . 
        . * label the new result levels
        . collect label levels result column1 "Frequency" column2 "Percent"
        
        . collect preview
        
        ---------------------------------------
                           Frequency    Percent
        ---------------------------------------
        Age - [Mean (SD)]   37.63796   13.03153
        Age - [Min Max]           15         60
        Sex=Female              1621   79.30528
        Sex=Male                 313   15.31311
        Sex=Unknown              110   5.381605
        x1=No                   1053   51.51663
        x1=Yes                   991   48.48337
        x2=No                   1027   50.24462
        x2=Yes                  1017   49.75538
        x3=No                   1027   50.24462
        x3=Yes                  1017   49.75538
        x4=No                   1042   50.97847
        x4=Yes                  1002   49.02153
        x5=No                   1021   49.95108
        x5=Yes                  1023   50.04892
        x6=No                   1007   49.26614
        x6=Yes                  1037   50.73386
        x7=No                   1010   49.41292
        x7=Yes                  1034   50.58708
        ---------------------------------------
        
        . 
        . * format the age results
        . collect style cell var[age_range], nformat(%5.0f)
        
        . collect style cell var[age_mu_sd], nformat(%5.2f)
        
        . collect style cell var[age_mu_sd]#result[column2], sformat("(%s)")
        
        . collect preview
        
        ---------------------------------------
                           Frequency    Percent
        ---------------------------------------
        Age - [Mean (SD)]      37.64    (13.03)
        Age - [Min Max]           15         60
        Sex=Female              1621   79.30528
        Sex=Male                 313   15.31311
        Sex=Unknown              110   5.381605
        x1=No                   1053   51.51663
        x1=Yes                   991   48.48337
        x2=No                   1027   50.24462
        x2=Yes                  1017   49.75538
        x3=No                   1027   50.24462
        x3=Yes                  1017   49.75538
        x4=No                   1042   50.97847
        x4=Yes                  1002   49.02153
        x5=No                   1021   49.95108
        x5=Yes                  1023   50.04892
        x6=No                   1007   49.26614
        x6=Yes                  1037   50.73386
        x7=No                   1010   49.41292
        x7=Yes                  1034   50.58708
        ---------------------------------------
        
        . 
        . * stack and unbind factor variables in the row headers
        . collect style row stack, nobinder
        
        . collect preview
        
        ---------------------------------------
                           Frequency    Percent
        ---------------------------------------
        Age - [Mean (SD)]      37.64    (13.03)
        Age - [Min Max]           15         60
        Sex                                    
          Female                1621   79.30528
          Male                   313   15.31311
          Unknown                110   5.381605
        x1                                     
          No                    1053   51.51663
          Yes                    991   48.48337
        x2                                     
          No                    1027   50.24462
          Yes                   1017   49.75538
        x3                                     
          No                    1027   50.24462
          Yes                   1017   49.75538
        x4                                     
          No                    1042   50.97847
          Yes                   1002   49.02153
        x5                                     
          No                    1021   49.95108
          Yes                   1023   50.04892
        x6                                     
          No                    1007   49.26614
          Yes                   1037   50.73386
        x7                                     
          No                    1010   49.41292
          Yes                   1034   50.58708
        ---------------------------------------
        
        . 
        . * recode the Yes levels of the x# factor variables to a single factor
        . * variable
        . forvalues i = 1/`k_x' {
          2.         collect recode var 1.x`i' = `i'.x 
          3. }
        (2 items recoded in collection Table)
        (2 items recoded in collection Table)
        (2 items recoded in collection Table)
        (2 items recoded in collection Table)
        (2 items recoded in collection Table)
        (2 items recoded in collection Table)
        (2 items recoded in collection Table)
        
        . collect preview
        
        ---------------------------------------
                           Frequency    Percent
        ---------------------------------------
        Age - [Mean (SD)]      37.64    (13.03)
        Age - [Min Max]           15         60
        Sex                                    
          Female                1621   79.30528
          Male                   313   15.31311
          Unknown                110   5.381605
        x                                      
          1                      991   48.48337
        x1                                     
          No                    1053   51.51663
        x                                      
          2                     1017   49.75538
        x2                                     
          No                    1027   50.24462
        x                                      
          3                     1017   49.75538
        x3                                     
          No                    1027   50.24462
        x                                      
          4                     1002   49.02153
        x4                                     
          No                    1042   50.97847
        x                                      
          5                     1023   50.04892
        x5                                     
          No                    1021   49.95108
        x                                      
          6                     1037   50.73386
        x6                                     
          No                    1007   49.26614
        x                                      
          7                     1034   50.58708
        x7                                     
          No                    1010   49.41292
        ---------------------------------------
        
        . 
        . * update layout to select only the var levels we care about
        . collect layout (var[age_mu_sd age_range i.sex i.x]) (result)
        
        Collection: Table
              Rows: var[age_mu_sd age_range i.sex i.x]
           Columns: result
           Table 1: 14 x 2
        
        ---------------------------------------
                           Frequency    Percent
        ---------------------------------------
        Age - [Mean (SD)]      37.64    (13.03)
        Age - [Min Max]           15         60
        Sex                                    
          Female                1621   79.30528
          Male                   313   15.31311
          Unknown                110   5.381605
        x                                      
          1                      991   48.48337
          2                     1017   49.75538
          3                     1017   49.75538
          4                     1002   49.02153
          5                     1023   50.04892
          6                     1037   50.73386
          7                     1034   50.58708
        ---------------------------------------
        
        . 
        . * format the factor variable statistics
        . collect style cell var[sex x]#result[column2], nformat(%5.2f) sformat("%s%%")
        
        . collect preview
        
        --------------------------------------
                           Frequency   Percent
        --------------------------------------
        Age - [Mean (SD)]      37.64   (13.03)
        Age - [Min Max]           15        60
        Sex                                   
          Female                1621    79.31%
          Male                   313    15.31%
          Unknown                110     5.38%
        x                                     
          1                      991    48.48%
          2                     1017    49.76%
          3                     1017    49.76%
          4                     1002    49.02%
          5                     1023    50.05%
          6                     1037    50.73%
          7                     1034    50.59%
        --------------------------------------
        
        . 
        . * label var x and its levels
        . collect label levels var x "Race"
        
        . forvalues i = 1/`k_x' {
          2.         collect label levels x `i' "Race label `i'"
          3. }
        
        . collect preview
        
        --------------------------------------
                           Frequency   Percent
        --------------------------------------
        Age - [Mean (SD)]      37.64   (13.03)
        Age - [Min Max]           15        60
        Sex                                   
          Female                1621    79.31%
          Male                   313    15.31%
          Unknown                110     5.38%
        Race                                  
          Race label 1           991    48.48%
          Race label 2          1017    49.76%
          Race label 3          1017    49.76%
          Race label 4          1002    49.02%
          Race label 5          1023    50.05%
          Race label 6          1037    50.73%
          Race label 7          1034    50.59%
        --------------------------------------
        
        . 
        . * you can hide the column headers
        . collect style header result, title(hide) level(hide)
        
        . collect preview
        
        ----------------------------------
        Age - [Mean (SD)]  37.64   (13.03)
        Age - [Min Max]       15        60
        Sex                               
          Female            1621    79.31%
          Male               313    15.31%
          Unknown            110     5.38%
        Race                              
          Race label 1       991    48.48%
          Race label 2      1017    49.76%
          Race label 3      1017    49.76%
          Race label 4      1002    49.02%
          Race label 5      1023    50.05%
          Race label 6      1037    50.73%
          Race label 7      1034    50.59%
        ----------------------------------

        Comment


        • #5
          Thank you, Jeff! This is exactly what I need.

          Comment


          • #6
            Hi every One,

            Please can someone help me. I want to avoid automaticaly some levels of dimension in "collect layout command" after a table commande, rather thnan list all dimension's levels needed. Below an illustration!

            Comment


            • #7
              HTML Code:
              capture log close
              webuse nhanes2l
              table region sex
              
              . table region sex
              
              ----------------------------------
                      |            Sex          
                      |   Male   Female    Total
              --------+-------------------------
              Region  |                         
                NE    |  1.018    1.078    2.096
                MW    |  1.310    1.464    2.774
                S     |  1.332    1.521    2.853
                W     |  1.255    1.373    2.628
                Total |  4.915    5.436   10.351
              ----------------------------------
              
              . collect dims
              
              Collection dimensions
              Collection: Table
              -----------------------------------------
                                 Dimension   No. levels
              -----------------------------------------
              Layout, style, header, label
                                    cmdset   1         
                                   command   1         
                                    region   5         
                                    result   1         
                                       sex   3         
                                   statcmd   1         
              
              Style only
                              border_block   4         
                                 cell_type   4         
              -----------------------------------------
              
              collect label list region, all
              
                Collection: Table
                 Dimension: region
                     Label: Region
              Level labels:
                        .m  Total
                         1  NE
                         2  MW
                         3  S
                         4  W
              
              
              *# I want somthing to avoid automticaly (".m total") in dimension region when typind 
              *# "collect layout (region) (sex). I do not want to type, it seams painful with a dimension containing more levels, 20 for example :
               collect layout (region[1 2 3 4]) (sex)
               
              *# Thank you in advance!
              
              Collection: Table
                    Rows: region[1 2 3 4]
                 Columns: sex
                 Table 1: 5 x 3
              
              -------------------------------
                     |           Sex         
                     |  Male   Female   Total
              -------+-----------------------
              Region |                       
                NE   |  1018     1078    2096
                MW   |  1310     1464    2774
                S    |  1332     1521    2853
                W    |  1255     1373    2628
              -------------------------------
              
              *# Thank you in advance!
              Last edited by ATTOM Ibrahim; 19 Nov 2023, 21:41.

              Comment

              Working...
              X