Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: For Loop Using Variable Labels

From   Erika Kociolek <>
Subject   st: For Loop Using Variable Labels
Date   Mon, 24 Jun 2013 15:40:29 -0700

Let's say I wanted to write to a file the number of responses to a
variety of survey questions with different categories. I'll use the
voter dataset to illustrate what I want to do.

*Stata Code*

cd C:/PATH/Data/
sysuse voter, clear
keep candidat-inc
drop if inc == 1  /*Drop if inc variable is equal to 1 (< $15k)*/

file open mefile using ../Data/Test.txt, write replace
file write mefile "Variable" _tab "Value" _tab "Number" _tab "Total" _tab _n

foreach v of varlist candidat-inc{ /*For each variable in the dataset:*/
   levelsof `v', local(temp) /*Store variable values in a local macros.*/

   foreach t of local temp{ /*For each value of the variable:*/
      file write mefile "`v'" _tab /*Write variable name to file,*/
      file write mefile "`t'" _tab /*Write question response to file,*/
      summarize `v' if `v' == `t'
      file write mefile "`r(N)'" _tab /*Write value to file,*/
   summarize `v'
   file write mefile "`r(N)'" _tab _n /*Write total number of
responses to the question (variable) to file.*/

file close mefile

So I dropped the lowest income category from the dataset (let's assume
there were no responses in that particular category). I'd like to use
the "levelsof" command on the variable label instead of the variable
values, since the label for the lowest category will always be in the
dataset, but there may not be a variable value for each response
category. How would one do that?

*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index