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 |
Datei |
Programm
data demo; merge one two; by subject; if test='B' then y=999; run;
![]() |
![]() |
![]() |
Datei |
Datei |
Datei |
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 |
Datei |
Datei |
Possible Solution
data demo; merge one two; by subject; run; data demo; set demo; if test='B' then y=999; run;