Skip to Main Content

 How can I list observations in blocks? | Stata FAQ

Sometimes the output of the list
command can be clumsy, showing an entire observation with all of the variables
wrapped across the screen. Sometimes you would like the data shown in columns
without the observations wrapping across the screen. You can obtain an
add on program called listblck that can do this. The
listblck command was written by Jeroen Weesie and appears in the
Stata
Technical Bulletin
#50. You can download
listblck from within Stata by typing search listblck (see
How can I used the search command to search for programs and get additional
help?
for more information about using search).

First we’re
going to show some output from list to illustrate what it can do, and
where you may run into problems, then we’ll move on to show you what you can do
with listblk. To do this we’ll use the high school and beyond
data file we use in our Stata Classes, the code below downloads the dataset.

use https://stats.idre.ucla.edu/stat/stata/notes/hsb2, clear
(highschool and beyond (200 cases))

We use the list command to list the first five observations, and we see
that this can be hard to read.

list in 1/5
     +-------------------------------------------------------------------------+
  1. |  id | female |  race |    ses | schtyp |     prog | read | write | math |
     |  70 |   male | white |    low | public |  general |   57 |    52 |   41 |
     |-------------------------------------------------------------------------|
     |               science               |               socst               |
     |                    47               |                  57               |
     +-------------------------------------------------------------------------+

     +-------------------------------------------------------------------------+
  2. |  id | female |  race |    ses | schtyp |     prog | read | write | math |
     | 121 | female | white | middle | public | vocation |   68 |    59 |   53 |
     |-------------------------------------------------------------------------|
     |               science               |               socst               |
     |                    63               |                  61               |
     +-------------------------------------------------------------------------+

     +-------------------------------------------------------------------------+
  3. |  id | female |  race |    ses | schtyp |     prog | read | write | math |
     |  86 |   male | white |   high | public |  general |   44 |    33 |   54 |
     |-------------------------------------------------------------------------|
     |               science               |               socst               |
     |                    58               |                  31               |
     +-------------------------------------------------------------------------+

     +-------------------------------------------------------------------------+
  4. |  id | female |  race |    ses | schtyp |     prog | read | write | math |
     | 141 |   male | white |   high | public | vocation |   63 |    44 |   47 |
     |-------------------------------------------------------------------------|
     |               science               |               socst               |
     |                    53               |                  56               |
     +-------------------------------------------------------------------------+

     +-------------------------------------------------------------------------+
  5. |  id | female |  race |    ses | schtyp |     prog | read | write | math |
     | 172 |   male | white | middle | public | academic |   47 |    52 |   57 |
     |-------------------------------------------------------------------------|
     |               science               |               socst               |
     |                    53               |                  61               |
     +-------------------------------------------------------------------------+

We can try to the table option,
which will put each case on a single line, which should
be easier to read. (Note table is the default display method for list; however, Stata
will switch to display mode under some circumstances.)

 list in 1/5, table

     +----------------------------------------------------------------------------
> ---------------+
     |  id   female    race      ses   schtyp       prog   read   write   math   s
> cience   socst |
     |----------------------------------------------------------------------------
> ---------------|
  1. |  70     male   white      low   public    general     57      52     41    
>     47      57 |
  2. | 121   female   white   middle   public   vocation     68      59     53    
>     63      61 |
  3. |  86     male   white     high   public    general     44      33     54    
>     58      31 |
  4. | 141     male   white     high   public   vocation     63      44     47    
>     53      56 |
  5. | 172     male   white   middle   public   academic     47      52     57    
>     53      61 |
     +----------------------------------------------------------------------------
> ---------------+

Looking at the above output, we can see why Stata selected display mode, that
is, to avoid having the table wrap.
This is where listblck is useful. Compare the above output with the result
from the listblck command below.

listblck in 1/5

  . listblck in 1/5

     +---------------------------------------------------+
     |  id   female    race      ses   schtyp       prog |
     |---------------------------------------------------|
  1. |  70     male   white      low   public    general |
  2. | 121   female   white   middle   public   vocation |
  3. |  86     male   white     high   public    general |
  4. | 141     male   white     high   public   vocation |
  5. | 172     male   white   middle   public   academic |
     +---------------------------------------------------+

     +---------------------------------------+
     | read   write   math   science   socst |
     |---------------------------------------|
  1. |   57      52     41        47      57 |
  2. |   68      59     53        63      61 |
  3. |   44      33     54        58      31 |
  4. |   63      44     47        53      56 |
  5. |   47      52     57        53      61 |
     +---------------------------------------+

listblk has a number of options that allow us to modify what is shown.
We can use the nolabel
option to suppress the printing of value labels, but you can see that it still
displays the data in a very wide format.  This is because the formats for
the variables try to provide enough space to display the labeled value (e.g.,
for the variable female, there is enough room to display the value “female”).

listblck in 1/5, nolabel
	
     +-------------------------------------------+
     |  id   female   race   ses   schtyp   prog |
     |-------------------------------------------|
  1. |  70        0      4     1        1      1 |
  2. | 121        1      4     2        1      3 |
  3. |  86        0      4     3        1      1 |
  4. | 141        0      4     3        1      3 |
  5. | 172        0      4     2        1      2 |
     +-------------------------------------------+

     +---------------------------------------+
     | read   write   math   science   socst |
     |---------------------------------------|
  1. |   57      52     41        47      57 |
  2. |   68      59     53        63      61 |
  3. |   44      33     54        58      31 |
  4. |   63      44     47        53      56 |
  5. |   47      52     57        53      61 |
     +---------------------------------------+
    

To try and fit more on a single
line, you can suppress the display of the observation number.

listblck in 1/5, nolabel noobs
	
  +--------------------------------------------------+
  |  id   female   race   ses   schtyp   prog   read |
  |--------------------------------------------------|
  |  70        0      4     1        1      1     57 |
  | 121        1      4     2        1      3     68 |
  |  86        0      4     3        1      1     44 |
  | 141        0      4     3        1      3     63 |
  | 172        0      4     2        1      2     47 |
  +--------------------------------------------------+

  +--------------------------------+
  | write   math   science   socst |
  |--------------------------------|
  |    52     41        47      57 |
  |    59     53        63      61 |
  |    33     54        58      31 |
  |    44     47        53      56 |
  |    52     57        53      61 |
  +--------------------------------+
In the examples above, sometimes the socst variable was displayed all alone and you could not see the id associated with the socst score.  Since id is the first variable, we can use the repeat(1) option and the first variable will be repeated for every block of data.
listblck in 1/5, repeat(1)
	
     +---------------------------------------------------+
     |  id   female    race      ses   schtyp       prog |
     |---------------------------------------------------|
  1. |  70     male   white      low   public    general |
  2. | 121   female   white   middle   public   vocation |
  3. |  86     male   white     high   public    general |
  4. | 141     male   white     high   public   vocation |
  5. | 172     male   white   middle   public   academic |
     +---------------------------------------------------+

     +---------------------------------------------+
     |  id   read   write   math   science   socst |
     |---------------------------------------------|
  1. |  70     57      52     41        47      57 |
  2. | 121     68      59     53        63      61 |
  3. |  86     44      33     54        58      31 |
  4. | 141     63      44     47        53      56 |
  5. | 172     47      52     57        53      61 |
     +---------------------------------------------+

If you wanted a different variable first, you can use
the order command to tell Stata what variable comes first. 
Suppose you wanted gender to come first, and you wanted gender repeated
on every line. You could use the order command and then the repeat(1)
option, as illustrated below.

order female
listblck in 1/5, repeat(1)

     +---------------------------------------------------+
     | female    id    race      ses   schtyp       prog |
     |---------------------------------------------------|
  1. |   male    70   white      low   public    general |
  2. | female   121   white   middle   public   vocation |
  3. |   male    86   white     high   public    general |
  4. |   male   141   white     high   public   vocation |
  5. |   male   172   white   middle   public   academic |
     +---------------------------------------------------+

     +------------------------------------------------+
     | female   read   write   math   science   socst |
     |------------------------------------------------|
  1. |   male     57      52     41        47      57 |
  2. | female     68      59     53        63      61 |
  3. |   male     44      33     54        58      31 |
  4. |   male     63      44     47        53      56 |
  5. |   male     47      52     57        53      61 |
     +------------------------------------------------+

You can use the order id
command, and id is the first variable again.

order id
listblck in 1/5, repeat(1)


     +---------------------------------------------------+
     |  id   female    race      ses   schtyp       prog |
     |---------------------------------------------------|
  1. |  70     male   white      low   public    general |
  2. | 121   female   white   middle   public   vocation |
  3. |  86     male   white     high   public    general |
  4. | 141     male   white     high   public   vocation |
  5. | 172     male   white   middle   public   academic |
     +---------------------------------------------------+

     +---------------------------------------------+
     |  id   read   write   math   science   socst |
     |---------------------------------------------|
  1. |  70     57      52     41        47      57 |
  2. | 121     68      59     53        63      61 |
  3. |  86     44      33     54        58      31 |
  4. | 141     63      44     47        53      56 |
  5. | 172     47      52     57        53      61 |
     +---------------------------------------------+

For more information

For more information, see the help or reference manual about
the list command
and the order command.