Expertentipp:

Wussten Sie schon, wie Sie für alle Variablen eines Datensatzes die Anzahl fehlender Werte bestimmen können?

Und so geht’s:

Die Vorgehensweise wird anhand eines simulierten Datenbeispiels demonstriert:


data temp;
  input x1 $ x2 $ x3 $ x4 x5;
datalines;
a . a 1 3
. b . 2 4
a a a . 5
. . b 3 5
a a a . 6
a a a . 7
a a a 2 8
;
run;

Falls Sie nur an der Anzahl fehlender Werte von allen numerischen Variablen in einem Datensatz interessiert sind, genügt ein einfacher Aufruf der Prozedur MEANS:


proc means data=temp nmiss n;
run;

 

Durch das Weglassen der VAR-Anweisung werden in der Prozedur MEANS die angeforderten Statistiken NMISS und N für alle numerischen Variablen (x4 und x5) des Beispieldatensatzes TEMP berechnet.

Für eine variablentyp-unabhängige Auszählung fehlender Werte werden zunächst zwei Formate definiert, die das eindeutige Labeln aller fehlenden und nicht-fehlenden Werte einer Variablen erlauben:


proc format;
  value $missfmt 
      ' '='Missing' 
    other='Not Missing'
    ;
  value missfmt  
       . ='Missing'
    other='Not Missing'
    ;
run;

Das eigentliche Auszählen erfolgt dann mit der Prozedur FREQ. Die definierten Formate erlauben dabei eine Gruppierung der Werte einer Variablen nach fehlend bzw. nicht-fehlend. Ferner werden über die Schlüsselwörter _NUMERIC_ und _CHAR_ sowohl die Formatzuweisungen als auch die Auszählungen für alle numerischen und alphanumerischen Variablen simultan durchgeführt:


proc freq data=temp;
  format _char_ $missfmt. _numeric_ missfmt.;
  tables _char_ _numeric_ / missing nocum nopercent;
run;

Die Ergebnisse umfassen für jede Variable des Datensatzes die Anzahlen fehlender und nicht-fehlender Werte - und zwar unabhängig vom Typ der Variablen: