Publicado el :
Manipulación de Datos CREATION_INTERNE

Demostración de la función CATX()

Este código también está disponible en: Deutsch English Français
En espera de validación
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!
1DATA one;
2 LENGTH x1-x4 $1;
3 INPUT x1-x4;
4 DATALINES;
5A B C D
6E . F G
7H . . J
8;
9RUN;
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!
1DATA two;
2 SET one;
3 SP='^';
4 test1=catx(sp, of x1-x4);
5 test2=trim(left(x1)) || sp || trim(left(x2)) || sp || trim(left(x3)) || sp ||
6 trim(left(x4));
7RUN;
3 Bloque de código
PROC PRINT
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!
1PROC PRINT DATA=two;
2RUN;
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.