>> Home >> Products >> Training >> NetCourses >> NetCoursesNow >> NCNow152: Advanced Stata Programming

< Return to NetCourses

NetCourseNowTM 152: Advanced Stata Programming



Discounts available for enrollments of
two or more participants.

NetCourseNow is a self-paced, personalized learning experience. All lectures 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 lectures. Enroll now, and begin when you're ready.

Learn how to create and debug your own commands that are indistinguishable from the commands in Stata. You will be able to parse both standard and nonstandard Stata syntax using the intuitive syntax command, to manage and process saved results, to post your own saved results, to process by-groups, to create data management commands, to program your own maximum-likelihood estimator, and more. In short, learn to create commands that act just like the commands that ship with Stata.


  • Stata 13 or Stata 12, installed and working
  • Course content of NetCourseNow 151 or equivalent knowledge
  • Internet web browser, installed and working
    (Course is platform independent)

Course content

Lecture 1: Parsing Stata syntax / The basics of Stata programming

  • Review of Stata programming features you learned in NC151
  • Parsing Stata syntax
  • Parsing options
  • Parsing complicated syntax
  • Using subprograms

Lecture 2: Parsing Stata syntax / The basics of Stata programming

  • Compound quotes for handling strings that may themselves contain quotes
  • Temporary variables
  • Using returned results from other programs
  • Restricting a calculation to a subsample
  • Putting together a complete program

Lecture 3: Using scalars and macros & introduction to low-level parsing

  • Scalars
  • Binary accuracy
  • Accuracy of macros vs. scalars
  • Converting a program from macros to scalars
  • Handling by() options
  • Low-level parsing
  • Programming immediate commands
  • Parsing new variables

Lecture 4: Returning results and writing estimation commands

  • Saved results
  • What can be returned in r()?
  • Referring to returned results in other programs
  • Referring to returned results in the program that sets them
  • Other types of returned values: s() and e()
  • S-class returned values
  • E-class returned results
  • Writing post-estimation commands
  • Writing an estimation (e class) command
  • Writing estimation commands from first principles
  • Writing estimation commands via maximum likelihood

Lecture 5: List processing, controlling program output, & naming conventions

  • Restricting commands to the relevant subsample
  • Creating lists
  • Stepping through list elements one-by-one
  • Deleting elements from lists
  • Adding elements to lists
  • Macro vectors
  • Parsing revisited: gettoken
  • Quietly blocks
  • The relation between capture and quietly
  • capture blocks
  • Naming conventions
  • Program naming convention
  • Calling convention
  • Version control
The Stata Blog: Not Elsewhere Classified Find us on Facebook Follow us on Twitter LinkedIn Google+ Watch us on YouTube