Publié le :

Démonstration de la fonction CATX()

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par créer un jeu de données 'one' contenant des variables caractères et des valeurs manquantes. Il illustre ensuite comment la fonction CATX() peut être utilisée pour concaténer des variables avec un délimiteur spécifié, en gérant automatiquement les valeurs manquantes sans introduire de délimiteurs superflus. Une comparaison est faite avec une méthode de concaténation manuelle pour souligner les avantages de CATX(). Le résultat final est affiché via une PROC PRINT.
Analyse des données

Type : CREATION_INTERNE


Les données sont créées directement dans le script à l'aide d'un bloc DATALINES/CARDS, ce qui permet de démontrer le comportement de CATX() avec des valeurs manquantes.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP crée un jeu de données nommé 'one'. Il définit quatre variables caractères (x1 à x4) avec une longueur de 1. Les données sont ensuite lues via un bloc DATALINES, incluant des observations avec des valeurs manquantes pour les variables intermédiaires (représentées par un point '.').
Copié !
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 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP crée un nouveau jeu de données 'two' basé sur 'one'. Une variable 'SP' est définie comme délimiteur '^'.
- La variable 'test1' est créée en utilisant la fonction CATX() pour concaténer les variables x1 à x4. CATX() gère automatiquement les valeurs manquantes en n'insérant pas de délimiteur avant ou après celles-ci, ni de délimiteurs consécutifs.
- La variable 'test2' est créée par une concaténation manuelle. Cette approche nécessite l'utilisation des fonctions TRIM() et LEFT() pour supprimer les espaces de fin et peut produire des délimiteurs supplémentaires si des valeurs sont manquantes, contrairement à CATX().
Copié !
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 Bloc de code
PROC PRINT
Explication :
Cette PROC PRINT affiche le contenu du jeu de données 'two'. Cela permet de visualiser et de comparer les résultats de la concaténation de 'test1' (utilisant CATX()) et 'test2' (concaténation manuelle), mettant en évidence l'avantage de CATX() pour la gestion des valeurs manquantes et des délimiteurs.
Copié !
1PROC PRINT DATA=two;
2RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.