Fusion in SAS | SAS-Fusionsdatensätze

Teilen auf Facebook
Teilen auf twittern
Teilen auf verlinktin
Teilen auf Telegramm
Teilen auf WhatsApp

Inhalt

In meinem vorherigen Artikel, “Kombinieren von Datensätzen in SAS – Vereinfacht”, wir analysieren drei Methoden, um Datensätze zu kombinieren: anfügen, verketten und zusammenführen. In diesem Artikel, Wir werden die gebräuchlichste und am häufigsten verwendete Methode zum Kombinieren von Datensätzen sehen: FUSION oder UNION.

Die Notwendigkeit, sich zu vereinen / Datensätze zusammenführen:

Bevor Sie ins Detail gehen, Lass uns verstehen, warum wir wirklich zusammenkommen müssen / verschmelzen. Wann immer wir Informationen haben, die in zwei oder mehr Datensätze aufgeteilt und verfügbar sind und wir sie in einem einzigen Datensatz kombinieren möchten, wir müssen fusionieren / schließe dich diesen Tabellen an. Eines der wichtigsten Dinge, die Sie beachten sollten, ist, dass die Zusammenführung auf gemeinsamen Kriterien oder Feldern basieren sollte. Zum Beispiel, in einem Einzelhandelsunternehmen, Wir haben eine Tabelle der täglichen Transaktionen (Tabelle enthält Produktdetails, Verkaufsdetails und Kundendetails) und eine Inventartabelle (mit Produktdetails und verfügbarer Menge). jedoch, um Informationen über den Lagerbestand oder die Verfügbarkeit eines Produkts zu erhalten, Was sollen wir machen? Kombinieren Sie die Transaktionstabelle mit der Inventartabelle basierend auf Product_Code und ziehen Sie die verkaufte Menge von der verfügbaren Menge ab.

Die Fusion / union kann verschiedene Typen haben und hängt von den Geschäftsanforderungen und der Beziehung zwischen den Datensätzen ab. Zuerst, Sehen wir uns verschiedene Arten von Beziehungen an, die Datensätze haben können.

  1. Wann für jeden gemeinsamen Variablenwert (sagen wir Variable 'x') im ersten Datensatz, der zweite Datensatz hat nur einen übereinstimmenden Wert für diese gemeinsame Variable 'x', dann heißt es Zwölf neunundfünfzig Beziehung.
  2. Wann für die Werte der gemeinsamen Variablen (sagen wir Variable 'y') im ersten Datensatz, andere Datensätze haben mehr als einen übereinstimmenden Wert für diese gemeinsame Variable 'y', dann heißt es Einer zu vielen Beziehung.
  3. Wenn beide Datensätze mehrere Einträge für denselben gemeinsamen Variablenwert haben, dann heißt es Viel zu viel Beziehung.

join_merge_sas-6434065

Und SAS, Wir können Gewerkschaften gründen / Fusionen in verschiedenen Formen, hier werden wir die gängigsten Wege besprechen: Datenschritt y PROC SQL. Im Datenschritt, Wir verwenden die Merge-Anweisung, um Joins durchzuführen, während in PROC SQL, wir schreiben eine SQL-Abfrage. Lassen Sie uns zuerst den Datenpass analysieren:

DATENSCHRITTE

Syntax:-
 Datendatensatz;
 Zusammenführen Datensatz1 Datensatz2 Datensatz3 ...Datensatzn;
 Von CommonVariable1 CommonVariable2......CommonVariablen;
 Lauf;

Notiz: – Datensätze müssen nach Variablen sortiert werden (S) gebräuchlich und name, Typ und Länge der gemeinsamen Variablen müssen für alle Eingabedatensätze gleich sein.

Sehen wir uns einige Szenarien für jede der Beziehungen zwischen Eingabedatensätzen an.

EINS-zu-EINS-Beziehung

Bühne 1 In den folgenden Eingabedatensätzen, Sie können sehen, dass zwischen diesen beiden Tabellen eine Eins-zu-Eins-Beziehung besteht in Studenten ID. Jetzt wollen wir einen Datensatz erstellen. MARKEN, wo wir all die einzigartigen student_ids mit den jeweiligen Mathe- und Physiknoten haben. Wenn student_id in der Math-Tabelle nicht verfügbar ist, also sollte math_marks einen fehlenden Wert haben und umgekehrt.

sas_one_to_one_merge1-9643061

Lösung mit Datenschritten: –

sas_one_to_one_result-6292137

Wie funktioniert es:-

  1. SAS vergleicht beide Datensätze und erstellt einen POS (Programmdatenvektor) für alle eindeutigen Variablen und initialisiert sie mit fehlenden Werten (der Programmdatenvektor ist ein Vermittler zwischen den Eingabe- und Ausgabedatensätzen). Im aktuellen Beispiel, Ich würde so einen POV erstellen:pdv-8085426
  2. Lesen Sie die erste Beobachtung aus den Eingabedatensätzen und vergleichen Sie die Werte der BY-Variablen in beiden Datensätzen:
    1. wenn die Werte gleich sind, es wird mit dem Wert der BY-Variablen in POS verglichen.
      1. wenn nicht gleich, die POV-Variablen werden mit den fehlenden Werten zurückgesetzt und der aktuelle Beobachtungswert wird in den POV kopiert, während die andere Beobachtung verloren bleibt
      2. Wenn es das gleiche ist, POS-Variablen werden nicht neu initialisiert. Der verfügbare Wert der aktuellen Beobachtung wird im POS aktualisiert
      3. Danach, der Datensatzzeiger bewegt sich in beiden Datensätzen zur nächsten Beobachtung und, während der RUN-Befehl ausgeführt wird, PDV-Werte werden an den Ausgangsdatensatz übergeben.
    2. Wenn der Wert der Variablen By nicht übereinstimmt, die Beobachtung des Datensatzes mit dem niedrigsten Wert wird nach POS . kopiert. Der Datensatzzeiger des Datensatzes mit einem niedrigeren BY-Variablenwert wird zur nächsten Beobachtung und zum nächsten Schritt verschoben 2 (ein) wiederholt sich noch einmal.
  3. Die obigen Schritte werden wiederholt, bis der EOF beider Datensätze erreicht ist.

Sie können einen Versuch durchführen, um den Ergebnisdatensatz auszuwerten.

Bühne 2: – Basierend auf den Eingabedatensätzen des Szenarios 1, wir wollen die folgenden Ausgabedatensätze erstellen.

zusammenführen_14-1908412

Lösung mit Datenschritten: – Schreiben wir einen Code ähnlich dem Szenario 1 mit der IN-Option. sas_in_pdv1-170267Über, Sie können sehen, dass wir die Option IN bei beiden Eingabedatensätzen verwendet und diesen den temporären Variablen MATH und PHYS Werte zugewiesen haben, da es sich um temporäre Variablen handelt, Daher können wir sie im Ausgabe-Dataset nicht sehen.

Ich habe dir die Tabelle gezeigt (PDV-Daten) die einen Variablenwert für alle Beobachtungen hat, zusammen mit den temporären Variablen. Jetzt, basierend auf dem Wert dieser Variablen, wir können nach Bedarf Code für Unterkonfigurations- und JOIN-Operationen schreiben:

  1. Wenn MATH und PHYS einen Wert haben 1, erstellt das erste Ausgabe-Dataset und heißt INNER JOIN.
  2. Wenn MATH hat 1, erstellt einen zweiten Satz von Ausgabedaten und heißt LEFT JOIN.
  3. Wenn PHYS hat 1, erstellt einen dritten Satz von Ausgabedaten und wird als RIGHT JOIN bezeichnet
  4. Wenn MATH und PHYS haben 1, funktioniert als FULL JOIN, wurde auch auf Stufe 1 gelöst.

tritt bei-5314579

sas_join_in_option-5975893

EINS-zu-viele-Beziehung

Bühne – 3 Hier haben wir zwei Datensätze, Student Ja Prüfung und wir wollen einen Satz von Ausgabedaten erstellen Warenzeichen.

sas_one_to_many-5802190

Zusätzlich zu den Eingabedatensätzen, Es besteht eine Eins-zu-Viele-Beziehung zwischen dem Studenten und der Prüfung. Jetzt, wenn Sie Ausgabedatensatznoten mit individueller Beobachtung für jede Schülerprüfung erstellen möchten, diese gehören zum STUDENT-Datensatz, nämlich, Union links.

Lösung mit Datenschritten: –

sas_left_join-3909637

Ähnlich, wir können Operationen für Inner Join durchführen, richtig und vollständig für eine 1:n-Beziehung mit dem IN-Operator.

Verhältnis VIELE zu VIELE

Bühne 4: Erstellen Sie Ausgabedatensätze, die alle Joins basierend auf einem gemeinsamen Feld enthalten. Sie können auch sehen, dass beide Eingabedatensätze eine Viele-zu-Viele-Beziehung aufweisen.

sas_many_many-7856638

Datenschritte bilden keine VIELE-zu-MANY-Beziehung, weil sie keine Ausgabe als kartesisches Produkt liefern. Wenn wir Tabelle A und Tabelle B mithilfe von Datenschritten zusammenführen, die Ausgabe ähnelt dem folgenden Schnappschuss.

sas_many_to_many_merge-7118706Wir haben schon gesehen, Wie können wir Datenschritte verwenden, um zwei oder mehr Datensätze zusammenzuführen, die eine der Beziehungen aufweisen?, außer VIELE bis VIELE? Jetzt werden wir die PROC SQL-Methoden sehen, um eine Lösung für ähnliche Anforderungen zu haben.

PROC-SQL

Verstehen der Join-Methodik in SQL, wir müssen zuerst das kartesische Produkt verstehen. Das kartesische Produkt ist eine Abfrage, die mehrere Tabellen in der from-Klausel enthält und alle möglichen Kombinationen von Zeilen aus den Eingabetabellen erzeugt. Wenn wir zwei Tische haben mit 2 Ja 4 Datensätze bzw, mit dem kartesischen Produkt, wir haben einen tisch mit 2 x 4 = 8 Aufzeichnungen.

Kartesisches_Produkt-9644155

SQL-Joins funktionieren für jede der Beziehungen zwischen Datensätzen (Einer nach dem anderen, eins zu vielen und viele zu vielen). Mal sehen, wie es mit Join-Typen funktioniert.

Syntax:-

Bitte auswählen Spalte-1, Spalte-2,… Spalte-n von Tabelle1 INNENVERBINDUNG / LINKS / RECHTS / KOMPLETTcapaz2 AUF Join-Bedingung ;

Notiz:-

  1. Tabellen können nach allgemeinen Variablen geordnet sein oder nicht.
  2. Der Name der gemeinsamen Variablen darf nicht ähnlich sein, aber es muss in Länge und Art ähnlich sein.
  3. Funktioniert mit maximal zwei Tabellen.

Lassen Sie uns die obigen Anforderungen mit PROC SQL lösen.

Bühne 1 :- Dies war ein Beispiel für FULL Join, wobei alle Student_IDs im Ausgabedatensatz mit den entsprechenden MATH- und PHYSICS-Flags erforderlich waren.

sql_full_join-2216542

Oben im Ausgabedatensatz, Sie können sehen, dass die Student_ID für diejenigen Studenten fehlt, die nur zur Physikprüfung erschienen sind. Um es zu lösen, verwenden wir eine COALESCE-Funktion. Gibt den Wert des ersten Arguments zurück, das in den angegebenen Variablen nicht fehlt.

Syntax:-

VERSCHMELZEN (Argument-1, Argument-2,… ..Argument-n)

Lassen Sie uns den obigen Code ändern: –
sql_coalesce-3846817

Bühne 2: – Dies war ein Beispiel für INNER, Links und Rechts Join. Hier lösen wir für Inner Join.sql_inner_join-8622220 Auf die gleiche Weise, Wir können für die linke und rechte Kreuzung tun.

Bühne -3 Dies war ein Link-Join-Problem für eine ONE-to-MANY-Beziehung.

sql_one_to_many-2747392

Bühne -4 Das war ein Viele-zu-Viele-Beziehungsproblem. Wir haben bereits besprochen, dass SQL ein kartesisches Produkt erzeugen kann, das alle Kombinationen von Datensätzen zwischen zwei Tabellen enthält.

sql_many_to_many-8134147

Oben haben wir gesehen, wie Proc SQL beitritt / Datensätze zusammenführen.

Schlussbemerkung: –

In dieser Artikelserie zum Kombinieren von Datensätzen in SAS, Wir analysieren verschiedene Methoden, um Datensätze zu kombinieren, wie z. B. das Addieren, verketten, verschmelzen, Sicherung. Besonders in diesem Artikel, wir diskutieren das in Abhängigkeit von der Beziehung zwischen den Datensätzen, verschiedene Arten von Joins und wie wir sie basierend auf verschiedenen Szenarien lösen können. Wir haben zwei Methoden verwendet (Datenschritte y PROC SQL) Ergebnisse erzielen. Die Effizienz dieser Methoden werden wir in einem der zukünftigen Artikel sehen..

Hat dir diese Serie geholfen? Wir haben ein komplexes Thema wie das Kombinieren von Datensätzen vereinfacht und versucht, es verständlich darzustellen. Wenn Sie weitere Hilfe beim Kombinieren von Datensätzen benötigen, Fühlen Sie sich frei, Ihre Fragen in den Kommentaren unten zu stellen.

PS Bist du beigetreten? Analytische Vidhya-Diskussion noch? Wenn dies nicht der Fall ist, Viele Data-Science-Debatten gehen verloren. Dies sind einige der Diskussionen, die in SAS . stattfinden:

1. Wählen Sie Variablen aus und übertragen Sie sie in einen neuen Datensatz in SAS

2. Importieren Sie die erste 20 Datensätze von Excel zu SAS

3. Wenn die Anweisung in SAS nicht funktioniert

Wenn Ihnen das, was Sie gerade gelesen haben, gefällt und Sie Ihre Arbeit fortsetzen möchten analytisches Lernen, abonnieren Sie unsere E-Mails, Folge uns auf Twitter oder wie bei uns Facebook Seite.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.