Die UPDATE-Anweisung ist ein mächtiges Werkzeug für die Pflege von Datensätzen. Sie erfordert eine BY-Anweisung und dass die Eingangsdatensätze nach den BY-Variablen sortiert oder indiziert sind. Die Flexibilität der UPDATE-Anweisung ermöglicht das Hinzufügen, Löschen oder Umbenennen von Variablen im Ausgabedatensatz. Standardmäßig ersetzen fehlende Werte im Transaktionsdatensatz keine vorhandenen Werte im Master-Datensatz, dieses Verhalten kann jedoch mit der Option UPDATEMODE=NOMISSINGCHECK geändert werden. Es ist entscheidend sicherzustellen, dass die Werte der BY-Variablen im Master-Datensatz eindeutig sind, da Duplikate zu teilweisen Aktualisierungen führen können.
Datenanalyse
Type : CREATION_INTERNE
Die Beispiele verwenden generierte Daten (Datalines) oder SASHELP.
1 Codeblock
DATA STEP Data
Erklärung : Dieses Beispiel veranschaulicht die Aktualisierung eines Master-Datensatzes ('master') mit neuen Werten aus einem Transaktionsdatensatz ('plantNew') unter Verwendung der UPDATE-Anweisung und der Variable 'common' als BY-Variable. Der Wert 'Eggplant' für 'plant' in Zeile 5 von 'master' wird durch 'Escarole' aus 'plantNew' ersetzt.
Kopiert!
data master;
input common $ animal $ plant $;
datalines;
a Ant Apple
b Bird Banana
c Cat Coconut
d Dog Dewberry
e Eagle Eggplant
f Frog Fig
;
run;
data plantNew;
input common $ plant $;
datalines;
a Apricot
b Barley
c Cactus
d Date
e Escarole
f Fennel
;
run;
data master2;
update master plantNew;
by common;
run;
proc print data=master2; run;
1
DATA master;
2
INPUT common $ animal $ plant $;
3
DATALINES;
4
a Ant Apple
5
b Bird Banana
6
c Cat Coconut
7
d Dog Dewberry
8
e Eagle Eggplant
9
f Frog Fig
10
;
11
RUN;
12
13
DATA plantNew;
14
INPUT common $ plant $;
15
DATALINES;
16
a Apricot
17
b Barley
18
c Cactus
19
d Date
20
e Escarole
21
f Fennel
22
;
23
RUN;
24
25
DATA master2;
26
update master plantNew;
27
BY common;
28
RUN;
29
PROC PRINTDATA=master2; RUN;
2 Codeblock
DATA STEP Data
Erklärung : Dieses Beispiel demonstriert das Verhalten der UPDATE-Anweisung, wenn der Transaktionsdatensatz ('plantNewDupes') doppelte Werte für die BY-Variable ('common') enthält. Der Wert 'Dewberry' wird durch 'Dill' ersetzt, da 'Dill' der letzte Wert für 'plant' ist, der 'd' im Transaktionsdatensatz zugeordnet ist. Es ist wichtig zu beachten, dass wenn der Master-Datensatz Duplikate für die BY-Variable enthält, nur das erste Vorkommen aktualisiert wird und eine Warnung im SAS-Log ausgegeben wird.
Kopiert!
data master;
input common $ animal $ plant $;
datalines;
a Ant Apple
b Bird Banana
c Cat Coconut
d Dog Dewberry
e Eagle Eggplant
f Frog Fig
;
run;
data plantNewDupes;
input common $ plant $;
datalines;
a Apricot
b Barley
c Cactus
d Date
d Dill
e Escarole
f Fennel
;
run;
data master;
update master plantNewDupes;
by common;
run;
proc print data=master; run;
1
DATA master;
2
INPUT common $ animal $ plant $;
3
DATALINES;
4
a Ant Apple
5
b Bird Banana
6
c Cat Coconut
7
d Dog Dewberry
8
e Eagle Eggplant
9
f Frog Fig
10
;
11
RUN;
12
13
DATA plantNewDupes;
14
INPUT common $ plant $;
15
DATALINES;
16
a Apricot
17
b Barley
18
c Cactus
19
d Date
20
d Dill
21
e Escarole
22
f Fennel
23
;
24
RUN;
25
26
DATA master;
27
update master plantNewDupes;
28
BY common;
29
RUN;
30
PROC PRINTDATA=master; RUN;
3 Codeblock
DATA STEP Data
Erklärung : Dieser erste Code veranschaulicht die Aktualisierung eines Master-Datensatzes ('master') mit einem Transaktionsdatensatz ('minerals'), der eine neue Variable ('mineral'), fehlende Werte und nicht übereinstimmende BY-Variablenwerte einführt. Die Variable 'mineral' wird hinzugefügt. Beobachtungen aus dem Transaktionsdatensatz ohne Übereinstimmung im Master werden als neue Beobachtungen hinzugefügt. Fehlende Werte im Transaktionsdatensatz ersetzen standardmäßig keine vorhandenen Werte im Master-Datensatz.
Kopiert!
data master;
input common $ animal $ plant $;
datalines;
a Ant .
c Cat Coconut
d Dog Dewberry
e Eagle Eggplant
f Frog Fig
;
run;
data minerals;
input common $ plant $ mineral $;
datalines;
a Apricot Amethyst
b Barley Beryl
c Cactus .
e . .
f Fennel .
g Grape Garnet
;
run;
data master;
update master minerals;
by common;
run;
proc print data=master; run;
1
DATA master;
2
INPUT common $ animal $ plant $;
3
DATALINES;
4
a Ant .
5
c Cat Coconut
6
d Dog Dewberry
7
e Eagle Eggplant
8
f Frog Fig
9
;
10
RUN;
11
12
DATA minerals;
13
INPUT common $ plant $ mineral $;
14
DATALINES;
15
a Apricot Amethyst
16
b Barley Beryl
17
c Cactus .
18
e . .
19
f Fennel .
20
g Grape Garnet
21
;
22
RUN;
23
24
DATA master;
25
update master minerals;
26
BY common;
27
RUN;
28
29
PROC PRINTDATA=master; RUN;
4 Codeblock
DATA STEP
Erklärung : Dieser zweite Code, basierend auf den Datensätzen von Beispiel 3.1, zeigt, wie die Option UPDATEMODE=NOMISSINGCHECK es ermöglicht, dass fehlende Werte im Transaktionsdatensatz die entsprechenden Werte im Master-Datensatz ersetzen. Hier wird der Wert von 'plant' in Beobachtung 5 als fehlend definiert, da er im Transaktionsdatensatz 'minerals' fehlt und die Option aktiviert ist.
Kopiert!
data master;
update master minerals updatemode=nomissingcheck;
by common;
run;
proc print data=master;
title "Updated Data Set master";
title2 "With Values Updated to Missing";
run;
1
DATA master;
2
update master minerals updatemode=nomissingcheck;
3
BY common;
4
RUN;
5
PROC PRINTDATA=master;
6
title "Updated Data Set master";
7
title2 "With Values Updated to Missing";
8
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.