Learn Stata

Introduction to Stata Programming

NetCourse 151

NetCourse®151: Introduction to Stata Programming

Course length: 6 weeks (4 lessons)

See dates.


Become an expert in organizing your work in Stata. Make the most of Stata's scripting language to improve your workflow and create concretely reproducible analyses. Learn how branching, looping, flow of control, and accessing stored estimation results can speed up your work and lead to more complete analyses. Learn about bootstrapping and Monte Carlo simulations, too.


  • Stata 18 installed and working
  • Basic knowledge of using Stata interactively
  • Internet web browser, installed and working

Note: This course is platform independent. You can use Stata on Windows, Mac or Linux.

Trainer: Kerry Kammire


Trainer: Derek Wagner


Course content

Lesson 1: Organization of analysis

  • Welcome
  • Entering and executing a program
  • The do-file
  • The interactive program command
  • A program in a do-file
  • Combination do-files
  • Ado-files
  • Organizing do-files
  • An individual do-file
  • A do-file to perform verification
  • Infiling data
  • Reproducibility
  • Indexing
  • assert as an alternative to branching
  • Consuming calculated results

Lesson 2: Macros, arguments, and looping

  • Macros
  • How macros might be used
  • Macro names
  • The related-persons example
  • Another example (plant data)
  • Potential problem—variable scope
  • More on arguments
  • Branching and looping
  • Physical program style
  • foreach
  • Looping across observations
  • if

Note: There is a one-week break between the posting of Lessons 2 and 3; however, course leaders are available for discussion.

Lesson 3: Examples and applications

  • Data management example
  • Handling time and date variables
  • Checking assumptions
  • Returned values and storing results
    • What can be returned in r()?
    • Referring to returned results in other programs
    • Referring to returned results in the program that sets them
  • Bootstrapped standard errors
  • Aside: reading a trace
  • A warning on bootstrapping
  • Speeding up bootstrapping
  • Bootstrapping, how to
  • Monte Carlo simulations
  • postfile and post
  • Using quietly
  • Speeding up simulations

Lesson 4: Ado-files

  • A first real ado-file
  • discard
  • More improvements to doanl
  • capture
  • The exit command
  • Making doanl a general tool
  • Writing a help file for doanl
  • Do-files, programs, and ado-files: When to use which
  • Temporary variables
  • Temporarily destroying data
  • Temporary files
  • An analysis-specific ado-file
  • General-purpose (GP) ado-files
  • A GP ado-file
  • Fine-tuning display output
  • Stata syntax
  • syntax
  • varlist macro
  • syntax’s other specifiers
  • Whether to use syntax
  • A note on quotes
  • Version control