- Home
- About Us
- Workshops & Seminars
- Software Help
- Software Access
- Spatial Analysis / GIS
- External Resources
3550 Rackham Building University of Michigan Ann Arbor, MI 48109-1070 cscar@umich.edu
more info
Importing Data: Converting SPSS Data Sets to SAS
This handout details the procedure for converting a SPSS data set into SAS. Although UNIX/ITD Statistics Servers filename conventions are used throughout this document, these instructions will also work on Windows or Macintosh once the filenames are adjusted accordingly.
SPSS portable files can be read into SAS using the SPSS engine. The SPSS engine is simply a program that translates SPSS portable files into SAS data sets. The form of the commands to translate an SPSS file into SAS are as follows:
libname libref1 spss 'name of subdirectory and file containing SPSS data'; libname libref2 'subdirectory where sas dataset will be stored'; proc convert spss=libref1 out=libref2.new-dataset-name; proc means data=libref1.new-dataset-name;
For example, if I had an SPSS portable file named bank.por, and I wished to create a permanent SAS data set within my subdirectory called '~/cscar', I could issue commands as shown below:
libname bankpor spss '~/cscar/bank.por'; libname sasdata '~/cscar'; proc convert spss=bankpor out=sasdata.bank; run; proc means data=sasdata.bank n mean std; title 'Checking on Transformation of Data from SPSS to SAS'; run;
In the commands shown above, the libref bankpor points to the spss portable file, ~/cscar/bank.por. It also assigns the engine SPSS to read this file. The libref sasdata points to the subdirectory ~/cscar. This is the subdirectory where the permanent SAS data set will be stored after the transformation from SPSS. The proc convert statement copies the SPSS portable file to the permanent SAS dataset sasdata.bank. The Proc Means statement is used as a check on the importing of the data to see if they look correct in SAS.
A copy of the SAS log for these commands is shown below:
1 libname bankpor spss '~/cscar/bank.por'; NOTE: Libref BANKPOR was successfully assigned as follows: Engine: SPSS Physical Name: /afs/umich.edu/user/m/y/myhome/cscar/bank.por 2 libname sasdata '~/cscar'; NOTE: Libref SASDATA was successfully assigned as follows: Engine: V609 Physical Name: /afs/umich.edu/user/m/y/myhome/cscar 3 4 proc convert spss=bankpor out=sasdata.bank; 5 run; NOTE: Using the libref BANKPOR, which has already been assigned to the file /afs/umich.edu/user/m/y/myhome/cscar/bank.por. NOTE: SPSS Portable File (Creation Date=11MAR96:20:00:59). NOTE: File label: '05.00.00'. NOTE: The data set SASDATA.BANK has 474 observations and 11 variables. NOTE: PROCEDURE CONVERT used: real time 0.55 seconds cpu time 0.35 seconds 6 7 proc means data=sasdata.bank n mean std; 8 title 'Checking on Transformation of Data from SPSS to SAS'; 9 run; NOTE: The PROCEDURE MEANS printed page 1.
The output of the Proc Means is shown below:
Checking on Transformation of Data from SPSS to SAS 1 20:15 Monday, March 11, 1996 Variable Label N Mean Std Dev -------------------------------------------------------------------- ID Employee code 474 876.5970464 146.4667742 SALBEG Beginning salary 474 6806.43 3148.26 SEX Sex of employee 474 0.4556962 0.4985595 TIME Job seniority 474 81.1097046 10.0609449 AGE Age of employee 474 37.1861392 11.7872421 SALNOW Current salary 474 13767.83 6830.26 EDLEVEL Educational level 474 13.4915612 2.8848464 WORK Work experience 474 7.9886076 8.7154111 JOBCAT Employment category 474 2.0590717 1.4054755 MINORITY Minority classification 474 0.2194093 0.4142836 SEXRACE Sex & race classification 474 2.1308017 1.0504105 --------------------------------------------------------------------
If later you wished to use this permanent data set in SAS, you could issue commands as shown below:
libname sasdata '~cscar'; proc freq data=sasdata.bank; tables sex edlevel jobcat; title 'frequencies of selected variables'; run;