Event Conditions

  • Course registration is binding
  • Upon cancellation more than 8 working days before the course start date, we invoice 50% of the course fee
  • Upon cancellation less than 8 working days before the course start date, we invoice the full course fee
  • We reserve the right to cancel scheduled courses
  • We reserve the right to invoice some courses in advance
  • Read full Terms of Service here

NetCourse: Writing Your Own Stata Commands

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.

Price: $175 Enroll now!

15% discount for group enrollments of three or more participants.

Stata Course content

Lesson 1: Parsing Stata syntax/Stata programming basics

  • Review of Stata’s programming features
  • Parsing
  • Parsing options
  • Parsing complicated syntax
  • Aside on subprograms

Lesson 2: Parsing Stata syntax, continued/Quotes, returned results, and subsamples

  • Quotes
  • Development continues
  • Temporary variables
  • Development continues
  • An aside concerning r()
  • Programming the formulas
  • Putting it together

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

  • What you must learn
  • Scalars
  • Binary accuracy
  • The accuracy of macros versus scalars
  • Converting a program from macros to scalars
  • Handling by() options
  • Sorting
  • Low-level parsing
  • Programming immediate commands
  • Rewriting mytt in terms of mytti
  • Parsing new variables

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

Lesson 4: Returning results and writing estimation commands

  • Where are we?
  • Stored 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 postestimation commands
  • Writing an estimation (e-class) command
  • An alternative estimation command outline
  • Writing estimation commands from first principles
  • Writing estimation commands via maximum likelihood

Lesson 5: List processing, controlling program output, and naming conventions

  • Restricting commands to the relevant subsample
  • Which is better: marksample or mark?
  • Programming by varlist
  • Lists
  • 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 above lists are not exhaustive. They are meant to give an idea of the level and scope of each topic.


  • Basic computer skills
  • Stata 15 installed and working

Please click here to enroll to this online course!

Event Properties

Event date 18. Jan 2019, 18:00
Event End Date 08. Mar 2019, 22:00
Individual Price 175 US$
Location Online