Taking Your Stata Programming Skills To The Next Level: Developing And Modifying Stata Ado Files

The objective of TStat Training’s more advanced course is to provide participants with the programming commands and options required to autonomously develop and modify Stata ADO files. The opening session offers a quick overview of the fundamental concepts and commands (macros, vectors, scalers, looping, branching, temporary objects, foreach, forvalues) intrinsic to successful programming development. Session two moves on to illustrate the most effective way to develop a Stata ADO file, introducing participants to more specific programming concepts (such as arguments, local subroutines and the temporary storing of results) and Stata’s programming commands tokenizemacro shift, marksample and markoutbyable and sortpreserve. In section three participants are introduced to Stata’s inbuilt matrix capabilities, before moving on in the final session to developing their own programs for linear and maximum likelihood estimators.


In common with TStat’s course philosophy, each session is composed of both a theoretical component (in which the programming techniques are fully explained via a series of course specific developed examples), and an applied (hands-on) segment, during which participants have the opportunity to implement the techniques under the watchful eye of the course tutor.


At the end of the course, it is expected that participants will be able to independently implement both the techniques learnt and personalize the ADO program templates specifically developed during the course in order to enhance the effectiveness of their research.

Researchers or professionals with a good knowledge of the introductory programming skills covered on our A Little bit of Programming goes an Awfully Long Way.. wising to take their programming skills to the next level in order to be able to program their only Stata ADO files for data analysis and data management and to develop Stata commands for least squares and maximum-likelihood estimators.

It is assumed that participants have a sound working knowledge of Stata and are familiar with the concepts and Stata commands treated in our introductory Stata Programming course: A Little bit of Programming goes an Awfully Long Way..


  1. Macros
    • Global macros
    • Local macros
  2. Scalars and matrices
  3. Temporary objects
  4. Looping
  5. Branching



  1. Programming in Stata
  2. Do-files and ADO-files
  3. Writing and modifying a Stata programs
  4. Programs without arguments
  5. Programs with positional arguments
  6. Programs with named positional arguments
  7. Storing and retrieving program results
  8. Programs with arguments using the “syntax” construct
  9. Using tokenize and macro shift
  10. ADO-files
  11. Implementing program options
  12. The return statements
  13. Sample restriction with marksample and markout
  14. Making a command “byable
  15. The use of sortpreserve
  16. Writing an rclass ADO-file
  17. Implementing program options
  18. Sample restrictions with marksample
  19. The usefulness of markout
  20. Make a program “byable
  21. The use of sortpreserve
  22. Writing an eclass ADO-file
  23. More on storing results in e()
  24. eclass program template
  25. Temporarily destroying the data in memory
  26. Local sub-routines



  1. Stata matrix commands
  2. Stata matrix input and output
  3. Matrix input from Stata estimation results
  4. Stata matrix subscripts and combining matrices
  5. Matrix operators
  6. Matrix functions
  7. Defining a macro by a matrix function
  8. Matrix accumulation commands



  1. Programming Linear Least Squares estimation
  2. Programming Maximum Likelihood estimation
  3. Some examples



The 2023 edition of this Training Course will be offered ONLINE on a part-time basis on the 22nd, 25th and 26th of September from 10.00 am to 1.30 pm Central European Summer Time (CEST).

Dr. Giovanni Cerulli
Research Institute on Sustainable Economic Growth
National Research Council of Italy – Rome

Students*: € 535.00
Ph.D. Students: € 685.00
Academic: € 795.00
Commercial: € 1070.00


*To be eligible for student prices, participants must provide proof of their full-time student status for the current academic year. Our standard policy is to provide all full-time students, be they Undergraduates or Masters students, access to student participation rates. Part-time master and doctoral students who are also currently employed will however, be allocated academic status.


Fees are subject to VAT (applied at the current Italian rate of 22%). Under current EU fiscal regulations, VAT will not however applied to companies, Institutions or Universities providing a valid tax registration number.


The number of participants is limited to 8. Places will be allocated on a first come, first serve basis. The course will be officially confirmed, when at least 5 individuals are enrolled.


Course fees cover: teaching materials (handouts, Stata do files and datasets to used during the course), a temporary licence of Stata valid for 30 days from the beginning of the course.


Individuals interested in attending the training course should contact TStat Training to ask for a registration form. The completed application must then be returned to TStat by the 12th September 2023.

To request further information or the registration form, please fill in the following form or send an email to





Terms and conditions*
I authorise the use of my personal data in accordance with the European Union’s General Data Protection Regulation 2018.
TStat S.r.l.’s privacy policy.


The objective of TStat Training’s more advanced course is to provide participants with the programming commands and options required to autonomously develop and modify Stata ADO files.


The 2023 edition of this Training Course will be offered ONLINE on a part-time basis on the 22nd, 25th and 26th of September.