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!
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 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!
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;
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!
proc print data=two;
run;
1
PROC PRINTDATA=two;
2
RUN;
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.