Veröffentlicht am :
ETL CREATION_INTERNE

Formatverwaltung und Datenumwandlung

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript ist in zwei Hauptteile unterteilt. Der erste Teil definiert ein numerisches Format ('readdate') zur Interpretation verschiedener Datumsdarstellungen. Dieses Format wird anschließend in einem DATA-Schritt angewendet, um rohe Datumszeichenfolgen in verwertbare numerische SAS©-Datumsangaben umzuwandeln. Eine Systemoption 'yearcutoff' wird ebenfalls definiert, um die Mehrdeutigkeit zweistelliger Jahreszahlen zu handhaben. Ein PROC PRINT zeigt das Ergebnis dieser Transformation. Der zweite Teil definiert ein weiteres numerisches Format ('typefmt') und mehrere Zeicheneingabeformate (INVALUE: '$groupx', '$groupy', '$groupz') zur Kategorisierung von Antworten. Diese Formate werden in einem zweiten DATA-Schritt verwendet, um rohe Textantworten auf standardisierte kategoriale Begriffe abzubilden.
Datenanalyse

Type : CREATION_INTERNE


Alle in diesem Skript verarbeiteten Daten werden intern über 'DATALINES'-Blöcke erstellt, die direkt in den SAS-Code integriert sind. Es werden keine externen Datenquellen oder SASHELP-Bibliotheken für die Dateneingabe verwendet.

1 Codeblock
PROC FORMAT
Erklärung :
Definiert ein numerisches Format namens 'readdate'. Dieses Format ordnet den Wert 1 dem Leseformat 'date7.' (Tag-Monat-zweistellige Jahreszahl) und den Wert 2 dem Format 'mmddyy8.' (Monat/Tag/zweistellige Jahreszahl) zu. Es wird verwendet, um Zeichenfolgen dynamisch als SAS-Datumsangaben zu interpretieren.
Kopiert!
1PROC FORMAT;
2 value readdate 1='date7.'
3 2='mmddyy8.';
4 RUN;
2 Codeblock
OPTIONS
Erklärung :
Definiert die Systemoption 'yearcutoff' auf 1920. Diese Option gibt an, dass jede zweistellige Jahreszahl, die kleiner als 'yearcutoff' ist (z.B. '00' bis '19'), dem 21. Jahrhundert (20xx) zugeordnet wird, während Jahreszahlen, die gleich oder größer sind (z.B. '20' bis '99'), dem 20. Jahrhundert (19xx) zugeordnet werden.
Kopiert!
1options yearcutoff=1920;
3 Codeblock
DATA STEP Data
Erklärung :
Erstellt den Datensatz 'fixdates' durch das Lesen von Rohdaten inline. Die Variable 'dateinformat' wird durch Anwenden des Formats 'readdate' auf die Variable 'source' erstellt, wodurch die entsprechende Datumsformatzeichenfolge generiert wird. Anschließend verwendet die Funktion 'INPUTN' diese dynamische Formatzeichenfolge, um die Zeichenfolge 'start' in einen numerischen SAS-Datumswert ('newdate') umzuwandeln.
Kopiert!
1DATA fixdates;
2 LENGTH jobdesc $12;
3 INPUT SOURCE id lname $ jobdesc $ start $;
4 dateinformat=put(SOURCE, readdate.);
5 newdate = inputn(start, dateinformat);
6 DATALINES;
7 1 1604 Ziminski writer 09aug90
8 1 2010 Clavell editor 26jan95
9 2 1833 Rivera writer 10/25/92
10 2 2222 Barnes proofreader 3/26/98
11 ;
4 Codeblock
PROC PRINT
Erklärung :
Zeigt den Inhalt des neu erstellten Datensatzes 'fixdates' an, um die Datumsumwandlung und die Datenstruktur zu überprüfen.
Kopiert!
1PROC PRINT;RUN;
5 Codeblock
PROC FORMAT
Erklärung :
Definiert ein numerisches Format 'typefmt', das die Werte 1, 2 und 3 bestimmten Zeicheneingabeformatnamen ('$groupx', '$groupy', '$groupz') zuordnet. Darüber hinaus werden drei Zeicheneingabeformate ('INVALUE') definiert: '$groupx', '$groupy' und '$groupz'. Jedes dieser Formate ordnet die Zeichenfolgen 'positive', 'negative' und 'neutral' unterschiedlichen kategorialen Begriffen zu (z.B. 'agree', 'accept', 'pass').
Kopiert!
1PROC FORMAT;
2 value typefmt 1='$groupx'
3 2='$groupy'
4 3='$groupz';
5 invalue $groupx 'positive'='agree'
6 'negative'='disagree'
7 'neutral'='notsure';
8 invalue $groupy 'positive'='accept'
9 'negative'='reject'
10 'neutral'='possible';
11 
12 invalue $groupz 'positive'='pass'
13 'negative'='fail'
14 'neutral'='retest';
15 RUN;
6 Codeblock
DATA STEP Data
Erklärung :
Erstellt den Datensatz 'answers' durch das Lesen von Rohdaten inline. Die Variable 'respinformat' wird durch Anwenden des Formats 'typefmt' auf die Variable 'type' erstellt, wodurch der entsprechende Zeicheneingabeformatname generiert wird (z.B. '$groupx'). Anschließend verwendet die Funktion 'INPUTC' diesen dynamischen Formatnamen, um die Zeichenfolge 'response' einem standardisierten kategorialen Wert ('word') zuzuordnen.
Kopiert!
1DATA answers;
2 INPUT type response $;
3 respinformat = put(type, typefmt.);
4 word = inputc(response, respinformat);
5 DATALINES;
6 1 positive
7 1 negative
8 1 neutral
9 2 positive
10 2 negative
11 2 neutral
12 3 positive
13 3 negative
14 3 neutral
15 ;
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.