Data Programming

A SAS User's Guide to Stata

SAS Help Page

Stata Help Page

Duke Affiliates

A SAS User's Guide to Stata


This guide is intended to introduce a SAS user to Stata and to be a cheat sheet when writing Stata code.
  • Basic Conceptual Differences Between SAS and Stata.
  • Stata's Windows Mode
  • SAS code matched to Stata code
  • How to submit Stata do-files in batch mode
  • Search these help pages:

Tools to transfer data between SAS and Stata

(all require that both SAS and Stata are able to be invoked on the same computer)

  • SAVASTATA:  SAS macro to save a SAS dataset as a Stata dataset.
  • SAVASAS:  Stata command to save a Stata dataset as a SAS dataset.
  • USESAS:  Stata command to use a SAS dataset while in Stata.
  • USESTATA:  See the example in the STATA WRAPPER page that shows you how to create a SAS dataset from a Stata dataset.
  • SAVAS (c-shell) script:  Invoked at a UNIX/Linux prompt makes Stata datafile copies of SAS datafiles or SAS datafile copies of Stata datafiles.
  • STATA_WRAPPER:  SAS macro to run Stata code from within SAS.
  • SASWRAPPER:  Stata command to run a SAS program from within Stata.

SAS macros inspired by Stata programs
  • CHAR2FMT:  SAS macro to encode character variables.
  • ISID:  SAS macro to test if variable(s) uniquely identify each observation in a dataset.
  • MINIME:  SAS macro to reset variable lengths to minimize the SAS dataset.
  • REN_STEM:  SAS macro to rename variables.
  • TYPE:  SAS macro to print a text file to your SAS output window.

Stata programs
  • ADOEDIT:  Stata command to edit an ado-file in Stata's do-file editor
  • ETIME:  Stata command to keep track of elapsed time
  • IFWINS:  Stata command to subset dataset by if exp before subsetting by in range
  • LOOKFORIT:  Stata command to search variable names and variable labels for some string or strings
  • LOOKFOR_ALL:  Searches for variables/patterns in Stata data files (.dta)
  • MKPROFILE:  Stata command to create or edit your profile.do
  • NSPLIT:  Stata command to split numeric variables with integer values into new smaller numeric variables
  • RCD:  Recursively traverse directories and execute any command in or for each one of them
  • RII:  Stata command to run Repeated-Imputation Inferences

Tools to transfer data between SAS matrix catalog files and SAS datasets

These SAS macros use PROC IML and are a great way to migrate a SAS matrix catalog file between operating systems since SAS catalog files can only be opened in the operating system they were created on.

  • MAT2DAT:  SAS macro to create SAS datasets from a SAS matrix catalog file
  • DAT2MAT:  SAS macro to create a SAS matrix catalog file from SAS datasets



Questions or comments?
   Send them to Dan Blanchette ()