NetCourse 152
Advanced Stata Programming
Content:
This course covers advanced issues of programming in the Stata language. We focus on writing commands for general use.
Course Leaders:
Shannon Driver, Programmer at Stata Corp.
Brian Poi, Statistician at StataCorp.
Course Length:
7 weeks (5 lectures)
Dates:
Oct 8th - Nov 26th 2004
Cost:
£ 90 + VAT
Prerequisites:
- Stata 8, installed and working.
- Course content of NetCourse 151 or equivalent knowledge.
- Course is platform independent.
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
- 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
- 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
|