Austauschbarkeit von SAS- und SPSS-Dateien

Dr. B. Tewes


Die universellen Statistikpakete SAS und SPSS legen eingegebene Daten in einem Systemformat ab, das jeweils in der Regel nur vom Programm selbst wieder gelesen werden kann. Außerdem werden diese Programme bei uns unter verschiedenen Betriebssystemen bereitgestellt. Wer aber einmal seine Daten unter SAS eingegeben hat, kann diese trotzdem ohne große Verluste unter SPSS für Windows weiterverarbeiten. Dies gilt selbstverständlich auch für den umgekehrten Fall.

Trend an unserer Universität scheint es zu sein, von der doch etwas in die Jahre gekommenen SAS-Version des Zentralrechners auf die modernere und sicher für einen Anfänger und gelegentlichen Nutzer leichter zu bedienende Oberfläche der Windows-Version von SPSS zu wechseln. Mit den gewachsenen Hardwareressourcen auf den PCs sind hier jetzt auch größere Datenmengen zu verarbeiten. Diesen Trend stoppen könnte vielleicht die baldige Verfügbarkeit der neuesten SAS-Version auf UNIX-Servern, denn dann wird SAS sicherlich das leistungsfähigere Instrumentarium zur Verfügung stellen und zumindest für den fortgeschrittenen Anwender wieder interessant.

Entscheidet man sich, von einem Softwareprodukt auf das andere zu wechseln, wird man sicher noch die eine oder andere Datendatei mit hinübernehmen wollen. Dies ist auch ohne größere Probleme in beide Richtungen möglich.

Von SAS zu SPSS

Hat man eine SAS-Datei auf dem Zentralrechner vorliegen (Dateiextension sdat), so muß diese zunächst ins Transportformat (als portable file format oder XPORT-Format bezeichnet) umgewandelt werden. Dieses Format ist in erster Linie dafür entwickelt worden, um Dateien zwischen den SAS-Versionen unterschiedlicher Betriebssysteme auszutauschen. Das Beispielprogramm 1 (am Ende dieses Artikels) erstellt eine solche Datei aus der Datei temp.sdat, die die Temperatur- und Niederschlagswerte dreier Städte enthält (vgl. SAS-Skript, Anhang D, Beispieldaten C). Die als libref verwendeten Bezeichnungen daten und ausgabe sind natürlich frei wählbar. Beim zweiten LIBNAME-Statement, das über die Syntax XPORT die Ausgabedatei (nicht Verzeichnis!) festlegt, sollte man darauf achten, daß man in dem hier mitspezifizierten Verzeichnis auch Schreibrechte besitzt. Im PROC COPY-Statement wird neben Eingabeverzeichnis und Ausgabedatei noch der Datentyp festgelegt, hier über MEMTYPE=DATA als Datendatei. Die nachfolgende SELECT-Anweisung wählt die Datei temp.sdat (in der SELECT-Anweisung ohne die Endung .sdat einzugeben!) im Verzeichnis :pro:kurs:sas:skript aus.

Per FTP muß diese Datei vom Zentralrechner auf DOS-Ebene transferiert werden:

ftp urz
Nach korrekter Eingabe von Kennung und Password für den Zentralrechner hat man eine Verbindung aufgebaut. Mit
get temp.por
wird dann der Transfer vorgenommen. Nun muß Windows und SPSS für Windows geladen werden. Im Syntax-Fenster gibt man dann die Anweisung
GET SAS DATA='c:\temp.por'.
ein (Punkt am Ende nicht vergessen), sofern Pfad und Name beim Dateitransfer nicht verändert wurden. Wer mit SPSS 6.0 arbeitet, muß anschließend im Syntaxfenster die Schaltfläche "Ausführen" anklicken, bei der Version 6.1 klickt man auf das Icon mit dem Pfeil nach rechts in der Symbolleiste. Dann wird in der Statusleiste von SPSS "Offene Transformation" angezeigt. Diese Tranformation wird letztendlich ausgeführt, indem man im Menü
Transformieren
Offene Transf. ausführen
anwählt. Der Datensatz steht nun im Datenfenster zur Verfügung und kann eventuell nachbearbeitet und als SPSS-Datei abgespeichert werden. Bei dieser Vorgehensweise werden Labels, die unter SAS über das LABEL-Statement Variablen zugewiesen wurden, von SPSS als Variablen-Label übernommen, die über das FORMAT-Statement zugewiesenen Formate werden jedoch nicht in SPSS-Werte-Labels umgesetzt.

Von SPSS zu SAS

Wenn man den umgekehrten Weg von einer SPSS-Datei zu einer SAS-Datei gehen will, so besteht der erste Schritt wiederum daraus, eine Datei im Transportformat zu erstellen. Hat man z.B. die bank.sav aus dem Verzeichnis i:\stat\spsswin.61d geladen, so kann man sie über die Menüpunkte

Datei
Speichern unter

abspeichern, wobei man als Dateityp SPSS portable (*.por) wählt. Diese Datei ist nun per FTP auf den Zentralrechner zu übertragen. Nach Aufbau einer Verbindung setzt man den Befehl

put bank.por
ab, wobei diese Datei im richtigen Verzeichnis liegen muß (ggf. vollständigen Pfad angeben).

Die Daten werden durch die SAS-Befehle des Beispielprogramms 2 ins SAS-Dateiformat übernommen. Durch das FILENAME-Statement wird ein frei wählbarer Referenzname für die SPSS-Datei erzeugt (hier spssdat). Die Prozedur PROC CONVERT nimmt dann die "Konvertierung" vor, wobei Ein- und Ausgabedatei festgelegt werden müssen. Auch bei dieser Übertragung bleibt festzuhalten, daß die Variablen-Label von SPSS als Label in die SAS-Datei übernommen werden, während die Werte-Label verloren gehen.


Beispielprogramm 1:

LIBNAME daten ':pro:kurs:sas:skript';
LIBNAME ausgabe XPORT ':udd:rza002:temp.por';
PROC COPY IN=daten OUT=ausgabe MEMTYPE=DATA;
    SELECT temp;
RUN;

Beispielprogramm 2:

FILENAME spssdat ':udd:rza002:bank.por';
PROC CONVERT SPSS=spssdat OUT=sasuser.bank;
RUN;


Ansprechpartner im URZ:Zimmer: Telefon: PMail:
Dr. Bernward Tewes EI: eO-106-1667 bernward.tewes
Bernhard Brandel IN: AS-301-1888 bernhard.brandel