Veröffentlicht am :
ETL CREATION_INTERNE

Beispiele: Eins-zu-eins-Zusammenführung von Daten

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Die MERGE-Anweisung führt, wenn sie ohne BY-Anweisung verwendet wird, eine Eins-zu-eins-Zusammenführung durch, indem sie Beobachtungen implizit anhand der Zeilennummer abgleicht und Variablenwerte ignoriert. Wenn die Eingangsdatensätze identische Spaltennamen haben, überschreiben die Werte der gemeinsamen Variablen des zuletzt in der MERGE-Anweisung angegebenen Datensatzes die Werte der zuvor angegebenen Datensätze. Nicht geteilte Spalten werden als neue Spalten hinzugefügt. Der Ausgabedatensatz enthält alle Beobachtungen aller Eingangsdatensätze, unabhängig von ihrer ursprünglichen Beobachtungsanzahl. Die Systemoption MERGENOBY kann verwendet werden, um die Protokollierung von Nachrichten während einer Eins-zu-eins-Zusammenführung zu steuern.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden generierte Daten (Datalines), um die Autonomie des Codes zu gewährleisten.

1 Codeblock
DATA STEP / PROC PRINT Data
Erklärung :
Dieses Beispiel veranschaulicht eine Eins-zu-eins-Zusammenführung von zwei Datensätzen, 'animal' und 'plantG', die eine gleiche Anzahl von Beobachtungen haben. Die MERGE-Anweisung wird ohne BY-Anweisung verwendet. Die Werte der Variablen 'common' in 'plantG' (der zuletzt angegebene Datensatz) überschreiben die Werte von 'animal' bei der sechsten Beobachtung, wo sie sich unterscheiden. Nicht gemeinsame Variablen werden hinzugefügt, und alle Beobachtungen sind im Ergebnis enthalten.
Kopiert!
1DATA animal;
2 INPUT common $ animal $;
3 DATALINES;
4a Ant
5b Bird
6c Cat
7d Dog
8e Eagle
9f Frog
10;
11DATA plantG;
12 INPUT common $ plant $;
13 DATALINES;
14a Apple
15b Banana
16c Coconut
17d Dewberry
18e Eggplant
19g Fig
20;
21DATA merged;
22 MERGE animal plantG;
23RUN;
24 
25PROC PRINT DATA=merged; RUN;
2 Codeblock
DATA STEP / PROC PRINT Data
Erklärung :
Dieses Szenario zeigt eine Eins-zu-eins-Zusammenführung zwischen 'animal' (6 Beobachtungen) und 'plantMissing' (3 Beobachtungen). Die MERGE-Anweisung ohne BY-Anweisung verarbeitet alle Einträge jedes Datensatzes, indem sie sie zeilenweise kombiniert. Fehlende Beobachtungen im kürzeren Datensatz ('plantMissing') führen zu fehlenden Werten in den entsprechenden Spalten des resultierenden Datensatzes, wo es keine implizite Übereinstimmung gibt, da die Zusammenführung fortgesetzt wird, bis alle Beobachtungen aller Datensätze verarbeitet sind. Wenn die 'SET'-Anweisung verwendet worden wäre, hätte das Programm nach dem Lesen des letzten Eintrags des kleineren Datensatzes angehalten.
Kopiert!
1DATA animal;
2INPUT common $ animal $;
3DATALINES;
4a Ant
5b Bird
6c Cat
7d Dog
8e Eagle
9f Frog
10;
11 
12DATA plantMissing;
13INPUT common $ plant $;
14DATALINES;
15a Apple
16b Banana
17c Coconut
18;
19 
20DATA merged;
21 MERGE animal plantmissing;
22RUN;
23PROC PRINT DATA=merged; RUN;
3 Codeblock
DATA STEP / PROC PRINT Data
Erklärung :
Dieses Beispiel veranschaulicht die potenziell unerwünschten Ergebnisse einer Eins-zu-eins-Zusammenführung ohne BY-Anweisung, wenn die Datensätze ('animalDupes', 'plantDupes') duplizierte Werte für die Variable 'common' enthalten. Eins-zu-eins-Zusammenführungen sind für Daten mit einer Eins-zu-eins-Beziehung konzipiert. In diesem Szenario (Eins-zu-viele- oder Viele-zu-eins-Beziehungen) erfolgt die Zusammenführung zeilenweise, wobei die Werte der gemeinsamen Variablen überschrieben werden und dies zu Informationsverlust oder einer falschen Kombination von Beobachtungen führen kann.
Kopiert!
1DATA animalDupes;
2INPUT common $ animal $;
3DATALINES;
4a Ant
5a Ape
6b Bird
7c Cat
8d Dog
9e Eagle
10;
11 
12DATA plantDupes;
13INPUT common $ plant $;
14DATALINES;
15a Apple
16b Banana
17c Coconut
18c Celery
19d Dewberry
20e Eggplant
21;
22 
23DATA merged;
24 MERGE animalDupes plantDupes;
25RUN;
26PROC PRINT DATA=merged; RUN;
4 Codeblock
DATA STEP / PROC PRINT Data
Erklärung :
Dieses Beispiel demonstriert die unerwünschten Ergebnisse einer Eins-zu-eins-Zusammenführung ohne BY-Anweisung, wenn die Datensätze ('animalMissing', 'plantMissing2') unterschiedliche Werte für ihre gemeinsame Variable 'common' haben. Die Zusammenführung erfolgt zeilenweise, und die Werte von 'plantMissing2' überschreiben die von 'animalMissing' für die Variable 'common'. Ohne eine explizite Übereinstimmung der Werte über eine BY-Anweisung kann die Datenkombination falsch sein und die erwarteten Beziehungen zwischen den Beobachtungen nicht widerspiegeln.
Kopiert!
1DATA animalMissing;
2 INPUT common $ animal $;
3 DATALINES;
4a Ant
5c Cat
6d Dog
7e Eagle
8;
9DATA plantMissing2;
10 INPUT common $ plant $;
11 DATALINES;
12a Apple
13b Banana
14c Coconut
15e Eggplant
16f Fig
17;
18DATA merged;
19 MERGE animalMissing plantMissing2;
20RUN;
21PROC PRINT DATA=merged; RUN;
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 : Copyright © SAS Institute Inc. All Rights Reserved