Veröffentlicht am :
ETL INTERNE_ERZEUGUNG

Datenumwandlung und -restrukturierung mit PROC TRANSPOSE

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses SAS©-Skript zeigt, wie eine 'breite' Datenstruktur in eine 'lange' (oder umgekehrt, je nach Standpunkt) mit der TRANSPOSE-Prozedur umgewandelt wird. Es generiert zuerst interne Daten, führt eine Transposition mit Namensverwaltung der Spalten über ein Präfix durch und verwendet dann einen DATA STEP, um aussagekräftige Geschäftsnamen für die Variablen anzuwenden.
Datenanalyse

Type : INTERNE_ERZEUGUNG


Die Daten werden direkt im Skript über die DATALINES-Anweisung im DATA Step, der die Tabelle MYSASLIB.SUBJECTS erstellt, generiert.

1 Codeblock
DATA STEP Data
Erklärung :
Erstellung einer Beispiel-Tabelle 'SUBJECTS' in der Bibliothek 'MYSASLIB' mit 4 Zeichenspalten, gefüllt mit statischen Daten (DATALINES).
Kopiert!
1DATA MYSASLIB.SUBJECTS;
2 
3INPUT SUB1 $ SUB2 $ SUB3 $ SUB4 $;
4DATALINES;
512 21 13 14
613 21 12 14
715 31 23 23
815 33 21 32
9 M F F M
10;
2 Codeblock
PROC TRANSPOSE Data
Erklärung :
Einfache Transposition der Variablen SUB1 bis SUB4. Die neu generierten Spalten erhalten Standardnamen (COL1, COL2 usw.).
Kopiert!
1 
2PROC TRANSPOSE
3DATA=MYSASLIB.SUBJECTS OUT=MYSASLIB.TRANSPOSED;
4VAR SUB1 SUB2 SUB3 SUB4;
5RUN;
6 
3 Codeblock
PROC TRANSPOSE Data
Erklärung :
Zweite Transposition derselben Variablen, jedoch unter Verwendung der Option PREFIX=INFO, um die resultierenden Spalten zu benennen (INFO1, INFO2 usw.).
Kopiert!
1 
2PROC TRANSPOSE
3DATA=MYSASLIB.SUBJECTS OUT=MYSASLIB.TRANSPOSED2 PREFIX=INFO;
4VAR SUB1 SUB2 SUB3 SUB4;
5RUN;
6 
4 Codeblock
PROC PRINT
Erklärung :
Anzeige des Ergebnisses der zweiten Transposition zur Überprüfung.
Kopiert!
1PROC PRINT DATA=MYSASLIB.TRANSPOSED2;
2RUN;
5 Codeblock
DATA STEP Data
Erklärung :
Erstellung der finalen Tabelle 'NEW_SUBJ' aus der transponierten Tabelle. Verwendung der RENAME-Anweisung, um den automatisch generierten Spalten Geschäftsnamen zuzuweisen.
Kopiert!
1DATA MYSASLIB.NEW_SUBJ;
2SET MYSASLIB.TRANSPOSED2;
3RENAME INFO1=T1 INFO2=T2
4 INFO3=T3 INFO4=T4
5 INFO5=GENDER _NAME_=SUBJECT;
6RUN;
6 Codeblock
PROC PRINT
Erklärung :
Endgültiger Bericht, der die restrukturierten und umbenannten Daten anzeigt, ergänzt durch einen Titel und eine Fußnote.
Kopiert!
1PROC PRINT DATA=MYSASLIB.NEW_SUBJ;
2RUN;
3TITLE 'transpose function';
4FOOTNOTE 'result of TP';
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : (C) 2016 Elliott, Alan C. and Woodward, Wayne A.