La instrucción UPDATE es una herramienta poderosa para el mantenimiento de conjuntos de datos. Requiere una instrucción BY y que los conjuntos de datos de entrada estén ordenados o indexados por las variables BY. La flexibilidad de la instrucción UPDATE permite agregar, eliminar o renombrar variables en el conjunto de datos de salida. Por defecto, los valores faltantes en el conjunto de datos de transacciones no reemplazan los valores existentes en el conjunto de datos maestro, pero este comportamiento puede modificarse con la opción UPDATEMODE=NOMISSINGCHECK. Es crucial asegurarse de que los valores de la variable BY sean únicos en el conjunto de datos maestro, ya que los duplicados pueden resultar en actualizaciones parciales.
Análisis de datos
Type : CREATION_INTERNE
Los ejemplos utilizan datos generados (datalines) o SASHELP.
1 Bloque de código
DATA STEP Data
Explicación : Este ejemplo ilustra la actualización de un conjunto de datos maestro ('master') con nuevos valores de un conjunto de datos de transacciones ('plantNew') utilizando la instrucción UPDATE y la variable 'common' como variable BY. El valor 'Eggplant' para 'plant' en la línea 5 de 'master' es reemplazado por 'Escarole' de 'plantNew'.
¡Copiado!
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 Bloque de código
DATA STEP Data
Explicación : Este ejemplo demuestra el comportamiento de la instrucción UPDATE cuando el conjunto de datos de transacciones ('plantNewDupes') contiene valores duplicados para la variable BY ('common'). El valor 'Dewberry' es reemplazado por 'Dill', ya que 'Dill' es el último valor para 'plant' asociado con 'd' en el conjunto de datos de transacciones. Es importante tener en cuenta que si el conjunto de datos maestro contiene duplicados para la variable BY, solo se actualiza la primera ocurrencia y se emite una advertencia en el registro de SAS.
¡Copiado!
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 Bloque de código
DATA STEP Data
Explicación : Este primer código ilustra la actualización de un conjunto de datos maestro ('master') con un conjunto de datos de transacciones ('minerals') que introduce una nueva variable ('mineral'), valores faltantes y valores de variable BY no coincidentes. Se agrega la variable 'mineral'. Las observaciones del conjunto de datos de transacciones sin correspondencia en el maestro se añaden como nuevas observaciones. Los valores faltantes en el conjunto de datos de transacciones no reemplazan los valores existentes en el conjunto de datos maestro por defecto.
¡Copiado!
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 Bloque de código
DATA STEP
Explicación : Este segundo código, basado en los conjuntos de datos del ejemplo 3.1, muestra cómo la opción UPDATEMODE=NOMISSINGCHECK permite que los valores faltantes en el conjunto de datos de transacciones reemplacen los valores correspondientes en el conjunto de datos maestro. Aquí, el valor de 'plant' en la observación 5 se establecerá como faltante, ya que está faltante en el conjunto de datos de transacciones 'minerals' y la opción está activada.
¡Copiado!
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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.