Store the descriptive statistics of a variable in a macro in Stata

In Stata, the .tabstat command computes aggregate statistics of variables such as mean and standard deviation, and its save option stores these statistics in a matrix. For example, to get the N, mean, and standard deviation of personal income, enter:

. tabstat income, stat(n mean sd) save

The stat() option specifies the aggregate statistics to be computed. N (the number of valid observations), mean, and standard deviation are stored in a matrix r(StatTotal). You may check for the presence of the matrix using the return list command. You can also list the values of the matrix by running matrix list r(StatTotal) as follows:

. return list

matrices:
          r(StatTotal) :  3 x 1

. matrix list r(StatTotal)

To convert the special matrix into a typical matrix using the .matrix command, enter:

. matrix stats=r(StatTotal)

Finally, to convert a scalar, for example, the mean of the variable, into a macro, enter:

. local avg=stats[2,1]

If you want to save the matrix as a variable, enter the .svmat command instead:

. clear
. svmat stats, name(var)

You may clear memory before converting the matrix. Since the matrix has only one column (3x1), you may have one variable var1 with three observations for N, mean, and standard deviation.

If you have questions about using statistical and mathematical software at Indiana University, contact the UITS Research Applications and Deep Learning team.

This is document atuo in the Knowledge Base.
Last modified on 2023-06-23 14:21:14.