Home  /  Products  /  Training  /  NetCourses  /  NetCourseNow  /  NCNow151: Introduction to Stata programming

< Return to NetCourses

NetCourseNow 151: Introduction to Stata programming



Discounts available for enrollments of
two or more participants.

NetCourseNow is a self-paced, personalized learning experience. All lessons will be posted at once, and you will be given the email address of your personal NetCourse instructor, to whom you can email questions about the lessons. Enroll now, and begin when you're ready.

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 saved estimation results can speed up your work and lead to more complete analyses. Learn about bootstrapping and Monte Carlo simulations, too.


  • Stata 18 or Stata 17, installed and working.
  • Basic knowledge of using Stata interactively
  • Internet web browser, installed and working
    (course is platform independent)

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