sas
Usando Uniones en SAS
Buscar..
Introducción
Cada base de datos es una colección de tablas diferentes y cada tabla contiene datos diferentes de forma organizada. Mientras trabajamos con datos, la mayoría de las veces la información que necesitamos está dispersa en más de una tabla. Necesitamos unir / fusionar para obtener el resultado deseado.
En SAS utilizamos uniones mientras trabajamos con Proc SQL
y usamos la combinación mientras trabajamos con el Data step
. Ahora hablaremos solo de las uniones dentro de Proc SQL
.
Parámetros
Tipo de unión | Salida |
---|---|
Proc Sql | Procedimiento SQL dentro de SAS |
Crear mesa | Crea un conjunto de datos SAS |
Seleccionar | Selecciona las variables requeridas de los respectivos conjuntos de datos |
Dónde | Especifica condición particular |
Dejar | Terminar el procedimiento |
Observaciones
Como se mencionó en la introducción, también podemos usar Merge
dentro de un data step
que se tratará en un tema aparte. Las uniones desempeñan un papel muy importante para combinar y unificar los datos de acuerdo con el requisito.
Unión vertical
La unión vertical agrega el conjunto de datos B al conjunto de datos A, siempre que ambos tengan variables similares. Por ejemplo, tenemos ventas para el mes del 17 de enero en el conjunto de datos A y ventas para el 17 de febrero en el conjunto de datos B. Para crear un conjunto de datos C que tenga ventas tanto de enero como de febrero, usamos Vertical Join.
PROC SQL;
CREATE TABLE C AS
SELECT *
FROM A
UNION
SELECT *
FROM B;
QUIT;
Ahora el conjunto de datos C tiene observaciones tanto de A como de B y se adjunta verticalmente.
Unir internamente
La unión interna crea un conjunto de datos que contiene registros que tienen valores coincidentes de ambas tablas. Por ejemplo, tenemos un conjunto de datos A que contiene información del cliente y un conjunto de datos B que contiene los detalles de la tarjeta de crédito. Para obtener los detalles de la tarjeta de crédito de los clientes en el conjunto de datos A, creamos el conjunto de datos C
PROC SQL;
CREATE TABLE C AS
SELECT A.*, B.CC_NUM
FROM CUSTOMER A, CC_DETAILS B
WHERE A.CUSTOMERID=B.CUSTOMERID
QUIT;
El conjunto de datos C solo tendrá observaciones coincidentes de ambos conjuntos de datos.
Unirse a la izquierda
La combinación izquierda devuelve todas las observaciones en el conjunto de datos izquierdo independientemente de sus valores clave, pero solo las observaciones con valores clave coincidentes del conjunto de datos correcto. Teniendo en cuenta el mismo ejemplo que el anterior,
PROC SQL;
CREATE TABLE C AS
SELECT A.*, B.CC_NUMBER, B.START_DATE
FROM CUSTOMER A LEFT JOIN CC_DETAILS B
ON A.CUSTOMERID=B.CUSTOMERID
QUIT;
El conjunto de datos C contiene todos los valores de la tabla de la izquierda, más los valores coincidentes de la tabla de la derecha o los valores faltantes en el caso de que no haya coincidencia.
Unirse a la derecha
Al igual que la combinación izquierda, la combinación derecha selecciona todas las observaciones del conjunto de datos derecho y los registros coincidentes de la tabla izquierda.
PROC SQL;
CREATE TABLE C AS
SELECT A.*, B.CC_NUMBER, B.START_DATE
FROM CUSTOMER A RIGHT JOIN CC_DETAILS B
ON A.CUSTOMERID=B.CUSTOMERID
QUIT;
El conjunto de datos C contiene todos los valores de la tabla derecha, más los valores coincidentes de la tabla izquierda o los valores faltantes en el caso de que no haya coincidencia.
Unirse completo
La combinación completa selecciona todas las observaciones de ambos conjuntos de datos, pero faltan valores en los que el valor clave de cada observación se encuentra en una sola tabla.
PROC SQL;
CREATE TABLE C AS
SELECT A.*, B.CC_NUMBER, B.START_DATE
FROM CUSTOMER A FULL JOIN CC_DETAILS B
ON A.CUSTOMERID=B.CUSTOMERID
QUIT;
El conjunto de datos C contendrá todos los registros de ambas tablas y se completará .
por partidos perdidos en ambos lados.