MailLib Konzept - Übung n°12

mit Lösung

Thema

Ein implizites Behalten (retain) beim Zusammenführen (merge) von zwei Datensätze in einem Datenschritt vermeiden

Schlüsselwörter

*data step #merge

Daten

data one;
    subject=1; test='A'; x=1; output;
    subject=1; test='B'; x=2; output;
    subject=1; test='C'; x=3; output;
    subject=2; test='A'; x=1; output;
run; 
data two;
    subject=1; y=100; output;
    subject=2; y=200; output;
run; 
Datei one Datei two

Programm

data demo;
    merge one two;
    by subject;
    if test='B' then y=999;
run; 
Datei one Datei two Datei demo

Die Dateien ein und zwei werden nach subject zusammengeführt. Der Wert von y wird dann aktualisiert, wenn test='B'. Aber wenn test='C', bleibt der Wert von y nicht 100; er wird auch geändert.

Aufgabe

Aktualisieren Sie das Programm, um das folgende Ergebnis zu erhalten:

Datei one Datei two Datei demo (Updated)

Possible Solution

data demo;
    merge one two;
    by subject;
run;
 
data demo;
    set demo;
    if test='B' then y=999;
run; 

Resource Hub

Module 5 Data Handling 3
Module 5, Chapter 2 Merging Several Datasets
Module 5, Chapter 2.8 Example 16: Avoiding an Implicit retain

Copyright © 2024 xxformat GmbH, Alle Rechte vorbehalten

xxformat GmbH

c/o STARTPLATZ, Im Mediapark 5
50670 Köln
Deutschland

Amtsgericht Köln HRB 90276

Geschäftsführer: Véronique Bourcier
veronique.bourcier@xxformat.com
+49 1577 288 6066