Useful Stata Commands (for Stata versions 13, 14, & 15) Kenneth L. Simons – This document is updated continually. For the latest version, open it from the course disk space. – This document briefly summarizes Stata commands useful in ECON-4570 Econometrics and ECON-6570 Advanced Econometrics.
Desktop, and select NEW, FOLDER. Rename this to Stata'. We will also create a new folder within this called Ado' which we will use to install new commands. Save the les for this class into the Stata' folder. Stata starts with a default working directory, but it is well hidden and not very convenient, so we want to. May 13, 2021 Click Finish to complete the installtion. Click the Windows Start button and type “StataIC 15” to open Stata 15. Select to Register Stata Online and follow the prompts to complete your registration. You will be prompted to check for software updates, you should always keep software up-to-date. But now my problem is, I was using Stata 15, where this code still works. But when I'm running the same code at stata17, it just runs once and gives values for 1 sic code & year 2000 and doesn't loop across all sic codes.
There are times we need to do some repetitive tasks in the process of data preparation, analysis or presentation, for instance, computing a set of variables in a same manner, rename or create a series of variables, or repetitively recode values of a number of variables. In this post, I show a few of simple example “loops” using Stata commands -foreach-, -local- and -forvalues- to handle some common simple repetitive tasks.
-foreach-: loop over items
Consider this sample dataset of monthly average temperature for three years.
Now the mean temperatures of each month are in Centigrade, if we want to convert them to Fahrenheit, we could do the computation for the 12 variables.
However this takes a lot of typing. Alternatively, we can use the -foreach- command to achieve the same goal. In the following codes, we tell Stata to do the same thing (the computation: c*9/5+32) for each of the variable in the varlist – mtemp1 to mtemp12.
Note that braces must be specified with -foreach-. The open brace has to be on the same line as the foreach, and the close brace must be on a line by itself. It’s crucial to close loops properly, especially if you have one or more loops nested in another loop.
-local-: define macro
This was a rather simple repetitive task which can be handled solely by the foreach command. Here we introduce another command -local-, which is utilized a lot with commands like foreach to deal with repetitive tasks that are more complex. The -local- command is a way of defining macro in Stata. A Stata macro can contain multiple elements; it has a name and contents. Consider the following two examples:
Define a local macro called mcode and another called month, alter the contents of mcode in the foreach loop, then display them in a form of “mcode: month”.
Note when you call a defined macro, it has to be wrapped in “`” (left tick) and “‘” (apostrophe) symbols.
Rename multiple variables
Take the temperature dataset we created as an example. Let’s say we want to rename variables mtemp1-mtemp12 as mtempjan-mtenpdec. We can do so by just tweaking a bit of the codes in the previous example.
Define local macro mcode and month, then rename the 12 vars in the foreach loop.
We can obtain the same results in a slightly different way. This time we use another 12 variables fmtemp1-fmtemp12 as examples. Again, we will rename them as fmtempjan-fmtempdec.
Define local macro month, then define local macro monthII in the foreach loop with specifying the string function word to reference the contents of the local macro month.
I usually run -display- to see how the macro looks like before actually applying the defined macro on tasks like changing variable names, just to make sure I don’t accidentally change them to some undesired results or even cause errors; however the display line is not necessary in this case.
Here we rename them back to fmtemp1-fmtemp12.
-forvalues-: loop over consecutive values
The -forvalues- command is another command that gets to be used a lot in handling repetitive works. Consider the same temperature dataset we created, suppose we would like to generate twelve dummy variables (warm1-warm12) to reflect if each of the monthly average temperature is higher than the one in the previous year. For example, I will code warm1 for the year of 2014 as 1 if the value of fmtemp1 for 2014 is higher than the value for 2013. I will code all the warm variables as 99 for the year of 2013, since they don’t have references to compare in this case.
Stata 15 Se
We can do this by running the following codes, then repeat them for twelve times to create the twelve variables warm1-warm12.
However this takes a lot of typing and may even create unwanted mistakes in the process of typing or copy-paste them over and over.
Instead, we can use -forvalues- to do so:
Reference
Baum, C. (2005). A little bit of Stata programming goes a long way… Working Papers in Economics, 69.
Stata 15 Installer
View the entire collection of UVA Library StatLab articles.
Stata 15 Torrent
Yun Tai
CLIR Postdoctoral Fellow
University of Virginia Library