NetCourseTM 152: Advanced Stata Programming
Course content
Lecture 1: Parsing Stata syntax/Stata programming basics
- Review of Stata programming features you learned in NC151
- Parsing Stata syntax
- Parsing options
- Parsing complicated syntax
- Using subprograms
Lecture 2: Parsing Stata syntax, continued/Quotes, returned results, and subsamples
- 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 and introduction to low-level parsing
- Scalars
- Binary accuracy
- Accuracy of macros versus scalars
- Converting a program from macros to scalars
- Handling by() options
- Sorting
- Low-level parsing
- Programming immediate commands
- Parsing new variables
There is a week break between lectures 3 and 4 to allow more time for those who 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 postestimation 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, and 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