El script comienza creando un conjunto de datos 'one' que contiene variables de caracteres y valores faltantes. Luego, ilustra cómo se puede usar la función CATX() para concatenar variables con un delimitador especificado, manejando automáticamente los valores faltantes sin introducir delimitadores superfluos. Se realiza una comparación con un método de concatenación manual para resaltar las ventajas de CATX(). El resultado final se muestra a través de un PROC PRINT.
Análisis de datos
Type : CREATION_INTERNE
Los datos se crean directamente en el script utilizando un bloque DATALINES/CARDS, lo que permite demostrar el comportamiento de CATX() con valores faltantes.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque DATA STEP crea un conjunto de datos llamado 'one'. Define cuatro variables de caracteres (x1 a x4) con una longitud de 1. Los datos se leen luego a través de un bloque DATALINES, incluyendo observaciones con valores faltantes para las variables intermedias (representadas por un punto '.').
¡Copiado!
data one;
length x1-x4 $1;
input x1-x4;
datalines;
A B C D
E . F G
H . . J
;
run;
1
DATA one;
2
LENGTH x1-x4 $1;
3
INPUT x1-x4;
4
DATALINES;
5
A B C D
6
E . F G
7
H . . J
8
;
9
RUN;
2 Bloque de código
DATA STEP Data
Explicación : Este bloque DATA STEP crea un nuevo conjunto de datos 'two' basado en 'one'. Una variable 'SP' se define como delimitador '^'.
- La variable 'test1' se crea usando la función CATX() para concatenar las variables x1 a x4. CATX() maneja automáticamente los valores faltantes al no insertar un delimitador antes o después de ellos, ni delimitadores consecutivos.
- La variable 'test2' se crea mediante una concatenación manual. Este enfoque requiere el uso de las funciones TRIM() y LEFT() para eliminar los espacios finales y puede producir delimitadores adicionales si faltan valores, a diferencia de CATX().
¡Copiado!
data two;
set one;
SP='^';
test1=catx(sp, of x1-x4);
test2=trim(left(x1)) || sp || trim(left(x2)) || sp || trim(left(x3)) || sp ||
trim(left(x4));
run;
Explicación : Este PROC PRINT muestra el contenido del conjunto de datos 'two'. Esto permite visualizar y comparar los resultados de la concatenación de 'test1' (usando CATX()) y 'test2' (concatenación manual), destacando la ventaja de CATX() para la gestión de valores faltantes y delimitadores.
¡Copiado!
proc print data=two;
run;
1
PROC PRINTDATA=two;
2
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.