Veröffentlicht am :
ETL CREATION_INTERNE

Analyse und Zusammenführung von Unternehmens- und Finanzdaten

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript beginnt mit der Definition von zwei temporären Datensätzen, 'company' und 'finance', unter Verwendung von 'datalines'-Blöcken für die direkte Dateneingabe. Der Datensatz 'company' enthält demografische Informationen über Mitarbeiter (Name, Alter, Geschlecht), während 'finance' finanzielle Details (Telefonnummer, Name, Gehalt) enthält. Jeder Datensatz wird mit PROC SORT nach 'Name' sortiert, was ein wesentlicher Vorbereitungsschritt für die Zusammenführung ist. Die sortierten Datensätze werden anschließend ausgegeben. Das Skript führt dann 'company' und 'finance' zu einem neuen Datensatz 'employeeinfo' zusammen, basierend auf der gemeinsamen Variablen 'Name'. Zusätzliche PROC PRINT-Prozeduren werden verwendet, um den zusammengeführten Datensatz anzuzeigen, sowie um die Verwendung der globalen Optionen 'firstobs' und 'obs', der 'WHERE'-Klausel für die Filterung und einen Versuch der Summenberechnung für eine kategoriale Variable (die als potenzieller Fehler vermerkt ist) zu demonstrieren. Schließlich werden PROC CONTENTS und PROC DATASETS verwendet, um die Metadaten der Datensätze, insbesondere 'company', zu überprüfen.
Datenanalyse

Type : CREATION_INTERNE


Die Daten für die Datensätze 'company' und 'finance' werden direkt im SAS-Skript über 'datalines'-Blöcke erstellt. Es werden keine externen Daten oder SASHELP-Bibliotheken als primäre Datenquelle für diese Datensätze verwendet.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt den Datensatz 'company' unter Verwendung von Inline-Daten, die im 'datalines'-Block bereitgestellt werden. Er definiert die Variablen 'Name' (Zeichen), 'Age' (numerisch) und 'Gender' (Zeichen) mit ihren jeweiligen Spaltenpositionen. Dieser Datensatz enthält grundlegende Informationen über Mitarbeiter.
Kopiert!
1DATA company;
2INPUT
3Name $ 1-25
4Age 27-28
5Gender $ 30;
6 DATALINES;
7Vincent, Martina 34 F
8Phillipon, Marie-Odile 28 F
9Gunter, Thomas 27 M
10Harbinger, Nicholas 36 M
11Benito, Gisela 32 F
12Rudelich, Herbert 39 M
13Sirignano, Emily 12 F
14Morrison, Michael 32 M
15;
16 
2 Codeblock
PROC SORT
Erklärung :
Diese PROC SORT sortiert den Datensatz 'company' nach der Variablen 'Name'. Die Sortierung ist für spätere Operationen wie die Zusammenführung ('MERGE') unerlässlich, die in der Regel erfordern, dass die Eingabedatensätze nach den Zusammenführungsvariablen ('BY'-Variablen) sortiert sind.
Kopiert!
1PROC SORT DATA=company;
2 BY Name;
3RUN;
4 
3 Codeblock
PROC PRINT
Erklärung :
Diese PROC PRINT zeigt den Inhalt des Datensatzes 'company' im Ausgabefenster an. Der 'title' gibt den Titel des gedruckten Berichts an und macht ihn so aussagekräftiger.
Kopiert!
1PROC PRINT DATA=company;
2 title 'Company';
3RUN;
4 
4 Codeblock
DATA STEP Data
Erklärung :
Dieser zweite DATA STEP-Block erstellt den Datensatz 'finance', ähnlich dem 'company'-Block, unter Verwendung von 'datalines'. Er erfasst die Variablen 'Phone_number' (Zeichen), 'Name' (Zeichen) und 'Salary' (numerisch), die finanzielle Informationen für bestimmte Mitarbeiter enthalten.
Kopiert!
1DATA finance;
2 INPUT Phone_number $ 1-11
3 Name $ 13-40
4 Salary;
5 DATALINES;
6074-53-9892 Vincent, Martina 35000
7776-84-5391 Phillipon, Marie-Odile 29750
8929-75-0218 Gunter, Thomas 27500
9446-93-2122 Harbinger, Nicholas 33900
10228-88-9649 Benito, Gisela 28000
11029-46-9261 Rudelich, Herbert 35000
12442-21-8075 Sirignano, Emily 5000
13;
14 
5 Codeblock
PROC SORT
Erklärung :
Ähnlich der Sortierung des Datensatzes 'company' sortiert diese PROC SORT den Datensatz 'finance' nach der Variablen 'Name' zur Vorbereitung der Zusammenführungsoperation.
Kopiert!
1PROC SORT DATA=finance;
2 BY Name;
3RUN;
4 
6 Codeblock
PROC PRINT
Erklärung :
Diese PROC PRINT zeigt den Inhalt des Datensatzes 'finance' mit dem Titel 'Employee Information' an und bietet so einen Überblick über die individuellen Finanzdaten.
Kopiert!
1PROC PRINT DATA=finance;
2 title 'Employee Information';
3RUN;
4 
7 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP führt die Datensätze 'company' und 'finance' zu einem neuen Datensatz namens 'employeeinfo' zusammen. Die Klausel 'BY name;' gibt an, dass die Zusammenführung durch Abgleichen der Beobachtungen anhand der Variablen 'Name' erfolgen soll. Wenn ein Name in einem Datensatz, aber nicht im anderen vorkommt, sind die Werte der nicht übereinstimmenden Variablen fehlend. Die Eingabedatensätze müssen nach der 'BY'-Variablen sortiert sein.
Kopiert!
1DATA employeeinfo;
2 MERGE company finance;
3 BY name;
4RUN;
5 
8 Codeblock
PROC PRINT
Erklärung :
Diese PROC PRINT zeigt den Datensatz 'employeeinfo' an, der das Ergebnis der Zusammenführung ist. Die Verwendung von 'title' und 'title2' ermöglicht die Definition von zwei Titelzeilen für die Berichtsausgabe.
Kopiert!
1PROC PRINT DATA=employeeinfo;
2 title 'Laxmi is Cute!';
3 title2 'very cute';
4RUN;
5 
9 Codeblock
PROC CONTENTS
Erklärung :
Die PROC CONTENTS liefert detaillierte Metadaten über den Datensatz 'company'. Dies umfasst Informationen wie die Anzahl der Beobachtungen, die Anzahl der Variablen, die Variablennamen, deren Typen (numerisch oder Zeichen), deren Längen und deren Formate.
Kopiert!
1PROC CONTENTS DATA = company;
2RUN;
3 
10 Codeblock
PROC DATASETS
Erklärung :
Die PROC DATASETS ist eine Bibliotheksverwaltungsprozedur, die verschiedene Operationen an Datensätzen und Katalogen ermöglicht. Hier wird die Anweisung 'contents data= company;' verwendet, um dieselben Metadaten wie PROC CONTENTS für den Datensatz 'company' zu erhalten. Sie wird oft in einem Kontext verwendet, in dem mehrere Datensatzverwaltungsoperationen innerhalb einer einzigen Ausführung von PROC DATASETS durchgeführt werden.
Kopiert!
1PROC DATASETS;
2contents DATA= company;
3RUN;
4 
11 Codeblock
OPTIONS et PROC PRINT
Erklärung :
Dieser Block demonstriert die Verwendung der globalen Optionen 'firstobs' und 'obs'. 'options firstobs=3;' weist SAS an, die Daten ab der dritten Beobachtung zu lesen, und 'obs=9;' weist an, nach der neunten Beobachtung anzuhalten. Folglich zeigt diese PROC PRINT die Beobachtungen 3 bis 9 (einschließlich) des Datensatzes 'employeeinfo' an. Diese Optionen wirken sich auf alle nachfolgenden Datenschritte und Prozeduren aus, bis sie zurückgesetzt oder geändert werden.
Kopiert!
1options firstobs= 3 obs=9;
2PROC PRINT DATA = employeeinfo;
3RUN;
4 
12 Codeblock
PROC PRINT
Erklärung :
Diese PROC PRINT verwendet eine 'WHERE'-Klausel, um Beobachtungen aus dem Datensatz 'employeeinfo' zu filtern. Nur die Beobachtungen, bei denen die Variable 'Name' die Teilzeichenfolge 'Vi' enthält (standardmäßig bei SAS für 'contains' nicht zwischen Groß- und Kleinschreibung unterschieden, es sei denn, die Option wird geändert), werden angezeigt. Dies ermöglicht das Anzielen spezifischer Daten-Subsets zur Anzeige.
Kopiert!
1PROC PRINT DATA = employeeinfo;
2where Name contains 'Vi';
3RUN;
4 
13 Codeblock
PROC PRINT
Erklärung :
Diese PROC PRINT versucht, einen Bericht mit Zwischensummen zu erstellen. Die Anweisung 'by Name;' gruppiert die Beobachtungen nach Namen, und 'sum Gender;' soll Summen für die Variable 'Gender' berechnen. 'Gender' ist jedoch eine Zeichenvariable, und die 'SUM'-Anweisung in PROC PRINT ist für numerische Variablen konzipiert. Dies führt zu einer Warnung oder einem Fehler im SAS-Log, und die Summe für 'Gender' wird nicht angezeigt. Die Anweisung 'ID Gender;' bedeutet, dass die Variable 'Gender' als Identifikationsvariable im Bericht verwendet wird, wird aber in diesem Kontext typischerweise nicht für eine sinnvolle Gruppierung mit 'BY' und 'SUM' auf einer kategorialen Variablen verwendet.
Kopiert!
1PROC PRINT DATA = employeeinfo;
2title 'Sub total';
3sum Gender;
4BY Name;
5ID Gender;
6RUN;
7 
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.