NetCourse 152

Advanced STATA Programming


Content:

This course teaches you how to create and debug new commands that are indistinguishable from the commands in Stata. It is assumed that you know why and when to program and to some extent how. You will learn how to parse both standard and nonstandard Stata syntax using the intuitive syntax command, how to manage and process saved results, how to process by groups, and more.

Course Leaders:

Kevin Crow, Technical Services Analyst at StataCorp.
Kerry Kammire, Technical Services Representative at StataCorp.
Theresa Boswell, technical services representative at StataCorp.

Course Length:

7 weeks (5 lectures)

Dates:

October 10–November 28, 2008

Cost:

£ 90 + VAT

Prerequisites:

  • Stata 10, installed and working
  • Course content of NetCourse 151 or equivalent knowledge
  • Internet web browser, such as Netscape, Microsoft Internet Explorer, or Mozilla, installed and working (course is platform independent)

Agenda

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

  • Review of STATA programming features you learned in NC-151
  • 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
  • Sorting
  • Low-level parsing
  • Programming immediate commands
  • Parsing new variables

There is an additional week break between lectures 3 and 4 in order to allow more time for those that may fall behind and to allow for more discussion from the participants


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
  • Which is better: marksample or mark?
  • Programming by varlist
  • 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

Back to Stata homepage
Back to Timberlake Consultants

©Timberlake Consultants Limited
Last revised:05/03/2008