Sas To Stata

In SAS, PROC FORMAT is a convenient way to apply value labels to categorical variables. Unfortunately, SAS does not automatically save custom formats when a data set is saved. This makes it inconvenient to STAT/TRANSFER to convert to Stata.

Here's a solution:

 LIBNAME hdformat 'D:\public\hd\formats';                                                                        
 PROC FORMAT library=hdformat;                                                               
 VALUE MARCOHAB                                                             
  1 ="Married, living with spouse"                                         
  2 ="Married, spouse absent"                                              
  3 ="Separated--Cohabiting"                                               
  4 ="Divorced--Cohabiting"                                                
  5 ="Widowed--Cohabiting"                                                 
  6 ="Never married--Cohabiting"                                           
  7 ="Separate--Not cohabiting"                                            
  8 ="Divorced--Not cohabiting"                                            
  9 ="Widowed--Not cohabiting"                                             
  10 ="Never married--Not cohabiting"                                      
  ;                                                                        
 VALUE MB2F                                                                 
  1 ="Married"                                                             
  2 ="Separated, because of marital problems"                              
  3 ="Divorced"                                                            
  4 ="Widowed"                                                             
  5 ="Never married"                                                       
  7 ="Refused"                                                             
  9 ="Inap/no answer"                                                      
  99 ="Unknown"                                                            
  ;

To use these formats, just include the following before your DATA step:

 LIBNAME hd 'd:\public\HD';  
 options fmtsearch=(hd); 

If saved, STAT/TRANSFER can then use these formats when it does a conversion to another format, like Stata. My version of Stat/Transfer, automatically looks for the format file using a particular name and directory which can be set under Options. Not the most intuitive interface, but with trial and error it not too hard to figure out.

Stat/Transfer setup

Categories: SAS, Stata, StatTransfer, Hacks