La declaración MERGE, cuando se usa sin una instrucción BY, realiza una fusión uno a uno emparejando implícitamente las observaciones basándose en el número de línea, ignorando los valores de las variables. Si los conjuntos de datos de entrada tienen nombres de columna idénticos, los valores de las variables comunes del último conjunto de datos especificado en la declaración MERGE sobrescriben los valores de los conjuntos de datos especificados anteriormente. Las columnas no compartidas se agregan como nuevas columnas. El conjunto de datos de salida contiene todas las observaciones de todos los conjuntos de datos de entrada, independientemente de su número inicial de observaciones. La opción de sistema MERGENOBY se puede utilizar para controlar el registro de mensajes durante una fusión uno a uno.
Análisis de datos
Type : CREATION_INTERNE
Los ejemplos utilizan datos generados (datalines) para asegurar la autonomía del código.
1 Bloque de código
DATA STEP / PROC PRINT Data
Explicación : Este ejemplo ilustra una fusión uno a uno de dos conjuntos de datos, 'animal' y 'plantG', que tienen un número igual de observaciones. La declaración MERGE se utiliza sin instrucción BY. Los valores de la variable 'common' en 'plantG' (el último conjunto de datos especificado) sobrescriben los de 'animal' en la sexta observación, donde difieren. Las variables no comunes se agregan, y todas las observaciones se incluyen en el resultado.
¡Copiado!
data animal;
input common $ animal $;
datalines;
a Ant
b Bird
c Cat
d Dog
e Eagle
f Frog
;
data plantG;
input common $ plant $;
datalines;
a Apple
b Banana
c Coconut
d Dewberry
e Eggplant
g Fig
;
data merged;
merge animal plantG;
run;
proc print data=merged; run;
1
DATA animal;
2
INPUT common $ animal $;
3
DATALINES;
4
a Ant
5
b Bird
6
c Cat
7
d Dog
8
e Eagle
9
f Frog
10
;
11
DATA plantG;
12
INPUT common $ plant $;
13
DATALINES;
14
a Apple
15
b Banana
16
c Coconut
17
d Dewberry
18
e Eggplant
19
g Fig
20
;
21
DATA merged;
22
MERGE animal plantG;
23
RUN;
24
25
PROC PRINTDATA=merged; RUN;
2 Bloque de código
DATA STEP / PROC PRINT Data
Explicación : Este caso muestra una fusión uno a uno entre 'animal' (6 observaciones) y 'plantMissing' (3 observaciones). La declaración MERGE sin instrucción BY procesará todos los registros de cada conjunto de datos combinándolos línea por línea. Las observaciones faltantes en el conjunto de datos más corto ('plantMissing') resultan en valores faltantes en las columnas correspondientes del conjunto de datos resultante donde no hay una coincidencia implícita, ya que la fusión continúa hasta que se procesan todas las observaciones de todos los conjuntos de datos. Si se hubiera utilizado la declaración 'SET', el programa se habría detenido después de leer el último registro del conjunto de datos más pequeño.
¡Copiado!
data animal;
input common $ animal $;
datalines;
a Ant
b Bird
c Cat
d Dog
e Eagle
f Frog
;
data plantMissing;
input common $ plant $;
datalines;
a Apple
b Banana
c Coconut
;
data merged;
merge animal plantmissing;
run;
proc print data=merged; run;
1
DATA animal;
2
INPUT common $ animal $;
3
DATALINES;
4
a Ant
5
b Bird
6
c Cat
7
d Dog
8
e Eagle
9
f Frog
10
;
11
12
DATA plantMissing;
13
INPUT common $ plant $;
14
DATALINES;
15
a Apple
16
b Banana
17
c Coconut
18
;
19
20
DATA merged;
21
MERGE animal plantmissing;
22
RUN;
23
PROC PRINTDATA=merged; RUN;
3 Bloque de código
DATA STEP / PROC PRINT Data
¡Copiado!
data animalDupes;
input common $ animal $;
datalines;
a Ant
a Ape
b Bird
c Cat
d Dog
e Eagle
;
data plantDupes;
input common $ plant $;
datalines;
a Apple
b Banana
c Coconut
c Celery
d Dewberry
e Eggplant
;
data merged;
merge animalDupes plantDupes;
run;
proc print data=merged; run;
1
DATA animalDupes;
2
INPUT common $ animal $;
3
DATALINES;
4
a Ant
5
a Ape
6
b Bird
7
c Cat
8
d Dog
9
e Eagle
10
;
11
12
DATA plantDupes;
13
INPUT common $ plant $;
14
DATALINES;
15
a Apple
16
b Banana
17
c Coconut
18
c Celery
19
d Dewberry
20
e Eggplant
21
;
22
23
DATA merged;
24
MERGE animalDupes plantDupes;
25
RUN;
26
PROC PRINTDATA=merged; RUN;
4 Bloque de código
DATA STEP / PROC PRINT Data
¡Copiado!
data animalMissing;
input common $ animal $;
datalines;
a Ant
c Cat
d Dog
e Eagle
;
data plantMissing2;
input common $ plant $;
datalines;
a Apple
b Banana
c Coconut
e Eggplant
f Fig
;
data merged;
merge animalMissing plantMissing2;
run;
proc print data=merged; run;
1
DATA animalMissing;
2
INPUT common $ animal $;
3
DATALINES;
4
a Ant
5
c Cat
6
d Dog
7
e Eagle
8
;
9
DATA plantMissing2;
10
INPUT common $ plant $;
11
DATALINES;
12
a Apple
13
b Banana
14
c Coconut
15
e Eggplant
16
f Fig
17
;
18
DATA merged;
19
MERGE animalMissing plantMissing2;
20
RUN;
21
PROC PRINTDATA=merged; 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.