SAS - Rohdaten lesen
SAS kann Daten aus verschiedenen Quellen lesen, die viele Dateiformate enthalten. Die in der SAS-Umgebung verwendeten Dateiformate werden nachfolgend erläutert.
- ASCII (Text) -Datensatz
- Abgrenzte Daten
- Excel-Daten
- Hierarchische Daten
Lesen des ASCII-Datensatzes (Text)
Dies sind die Dateien, die die Daten im Textformat enthalten. Die Daten werden normalerweise durch ein Leerzeichen begrenzt, es kann jedoch auch verschiedene Arten von Trennzeichen geben, mit denen SAS umgehen kann. Betrachten wir eine ASCII-Datei mit den Mitarbeiterdaten. Wir lesen diese Datei mit demInfile Anweisung in SAS verfügbar.
Beispiel
Im folgenden Beispiel lesen wir die genannte Datendatei emp_data.txt aus der lokalen Umgebung.
data TEMP;
infile
'/folders/myfolders/sasuser.v94/TutorialsPoint/emp_data.txt';
input empID empName $ Salary Dept $ DOJ date9. ;
format DOJ date9.;
run;
PROC PRINT DATA = TEMP;
RUN;
Wenn der obige Code ausgeführt wird, erhalten wir die folgende Ausgabe.
Begrenzte Daten lesen
Dies sind die Datendateien, in denen die Spaltenwerte durch ein Begrenzungszeichen wie Komma oder Pipeline usw. getrennt sind. In diesem Fall verwenden wir die dlm Option in der infile Erklärung.
Beispiel
Im folgenden Beispiel lesen wir die Datendatei mit dem Namen emp.csv aus der lokalen Umgebung.
data TEMP;
infile
'/folders/myfolders/sasuser.v94/TutorialsPoint/emp.csv' dlm=",";
input empID empName $ Salary Dept $ DOJ date9. ;
format DOJ date9.;
run;
PROC PRINT DATA = TEMP;
RUN;
Wenn der obige Code ausgeführt wird, erhalten wir die folgende Ausgabe.
Excel-Daten lesen
SAS kann eine Excel-Datei mithilfe der Importfunktion direkt lesen. Wie im Kapitel SAS-Datensätze zu sehen ist, kann es eine Vielzahl von Dateitypen verarbeiten, einschließlich MS Excel. Angenommen, die Datei emp.xls ist lokal in der SAS-Umgebung verfügbar.
Beispiel
FILENAME REFFILE
"/folders/myfolders/TutorialsPoint/emp.xls"
TERMSTR = CR;
PROC IMPORT DATAFILE = REFFILE
DBMS = XLS
OUT = WORK.IMPORT;
GETNAMES = YES;
RUN;
PROC PRINT DATA = WORK.IMPORT RUN;
Der obige Code liest die Daten aus der Excel-Datei und gibt die gleiche Ausgabe wie die beiden oben genannten Dateitypen aus.
Hierarchische Dateien lesen
In diesen Dateien sind die Daten in hierarchischem Format vorhanden. Für eine gegebene Beobachtung gibt es einen Header-Datensatz, unter dem viele Detail-Datensätze erwähnt werden. Die Anzahl der Detailaufzeichnungen kann von Beobachtung zu Beobachtung unterschiedlich sein. Unten sehen Sie eine Abbildung einer hierarchischen Datei.
In der folgenden Datei sind die Details jedes Mitarbeiters in jeder Abteilung aufgeführt. Der erste Datensatz ist der Header-Datensatz, in dem die Abteilung erwähnt wird, und der nächste Datensatz, der mit DTLS beginnt, ist der Detail-Datensatz.
DEPT:IT
DTLS:1:Rick:623
DTLS:3:Mike:611
DTLS:6:Tusar:578
DEPT:OPS
DTLS:7:Pranab:632
DTLS:2:Dan:452
DEPT:HR
DTLS:4:Ryan:487
DTLS:2:Siyona:452
Beispiel
Zum Lesen der hierarchischen Datei verwenden wir den folgenden Code, in dem wir den Header-Datensatz mit einer IF-Klausel identifizieren und den Detail-Datensatz mit einer do-Schleife verarbeiten.
data employees(drop = Type);
length Type $ 3 Department
empID $ 3 empName $ 10 Empsal 3 ;
retain Department;
infile
'/folders/myfolders/TutorialsPoint/empdtls.txt' dlm = ':';
input Type $ @;
if Type = 'DEP' then
input Department $;
else do;
input empID empName $ Empsal ;
output;
end;
run;
PROC PRINT DATA = employees;
RUN;
Wenn der obige Code ausgeführt wird, erhalten wir die folgende Ausgabe.