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.
Course content of NetCourse 151 or equivalent knowledge
Internet web browser, installed and working (course is platform independent)
Course content
Expand all sections
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
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
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
×
We use cookies
We use cookies to ensure that we give you the best experience on our website—to enhance site navigation, to analyze usage, and to assist in our marketing efforts. By continuing to use our site, you consent to the storing of cookies on your device and agree to delivery of content, including web fonts and JavaScript, from third party web services.
Cookie Settings
Privacy policy
Last updated: 16 November 2022
StataCorp LLC (StataCorp) strives to provide our users with exceptional products and services. To do so, we must collect personal information from you. This information is necessary to conduct business with our existing and potential customers. We collect and use this information only where we may legally do so. This policy explains what personal information we collect, how we use it, and what rights you have to that information.
These cookies are essential for our website to function and do not store any personally identifiable information. These cookies cannot be disabled.
Advertising and performance cookies
This website uses cookies to provide you with a better user experience. A cookie is a small piece of data our website stores on a site visitor's hard drive and accesses each time you visit so we can improve your access to our site, better understand how you use our site, and serve you content that may be of interest to you. For instance, we store a cookie when you log in to our shopping cart so that we can maintain your shopping cart should you not complete checkout. These cookies do not directly store your personal information, but they do support the ability to uniquely identify your internet browser and device.
Please note: Clearing your browser cookies at any time will undo preferences saved here. The option selected here will apply only to the device you are currently using.