Veröffentlicht am :
Datenmanipulation CREATION_INTERNE

Demonstration der CATX()-Funktion

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript beginnt mit der Erstellung eines Datensatzes 'one', der Zeichenvariablen und fehlende Werte enthält. Es veranschaulicht dann, wie die CATX()-Funktion verwendet werden kann, um Variablen mit einem angegebenen Trennzeichen zu verketten, wobei fehlende Werte automatisch verwaltet werden, ohne überflüssige Trennzeichen einzufügen. Ein Vergleich mit einer manuellen Verkettungsmethode wird durchgeführt, um die Vorteile von CATX() hervorzuheben. Das Endergebnis wird über eine PROC PRINT angezeigt.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden direkt im Skript mithilfe eines DATALINES/CARDS-Blocks erstellt, was das Verhalten von CATX() mit fehlenden Werten demonstriert.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt einen Datensatz namens 'one'. Er definiert vier Zeichenvariablen (x1 bis x4) mit einer Länge von 1. Die Daten werden dann über einen DATALINES-Block gelesen, der Beobachtungen mit fehlenden Werten für die Zwischenvariablen (dargestellt durch einen Punkt '.') enthält.
Kopiert!
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 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt einen neuen Datensatz 'two' basierend auf 'one'. Eine Variable 'SP' wird als Trennzeichen '^' definiert.
- Die Variable 'test1' wird mithilfe der CATX()-Funktion erstellt, um die Variablen x1 bis x4 zu verketten. CATX() behandelt fehlende Werte automatisch, indem es keine Trennzeichen vor oder nach ihnen oder aufeinanderfolgende Trennzeichen einfügt.
- Die Variable 'test2' wird durch manuelle Verkettung erstellt. Dieser Ansatz erfordert die Verwendung der Funktionen TRIM() und LEFT(), um nachgestellte Leerzeichen zu entfernen, und kann im Gegensatz zu CATX() zusätzliche Trennzeichen erzeugen, wenn Werte fehlen.
Kopiert!
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 Codeblock
PROC PRINT
Erklärung :
Diese PROC PRINT zeigt den Inhalt des Datensatzes 'two' an. Dies ermöglicht die Visualisierung und den Vergleich der Verkettungsergebnisse von 'test1' (unter Verwendung von CATX()) und 'test2' (manuelle Verkettung), wodurch der Vorteil von CATX() bei der Verwaltung fehlender Werte und Trennzeichen hervorgehoben wird.
Kopiert!
1PROC PRINT DATA=two;
2RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.