Missing Values in SAS Magnus Mengelbier Director PhUSE 2011 1 - - PowerPoint PPT Presentation

missing values in sas
SMART_READER_LITE
LIVE PREVIEW

Missing Values in SAS Magnus Mengelbier Director PhUSE 2011 1 - - PowerPoint PPT Presentation

Missing Values in SAS Magnus Mengelbier Director PhUSE 2011 1 Topics Introduction Missing values Missing system option Assign missing values Tests for a missing value Summary PhUSE 2011 2 Question


slide-1
SLIDE 1

1

PhUSE 2011

Missing Values in SAS

Magnus Mengelbier Director

slide-2
SLIDE 2

2

PhUSE 2011

Topics

§

Introduction

§

Missing values

§

Missing system option

§

Assign missing values

§

Tests for a missing value

§

Summary

slide-3
SLIDE 3

3

PhUSE 2011

Question

if myvar = . then put "I am missing" ; if myvar = "" then put "I am missing" ; if myvar = " " then put "I am missing" ;

slide-4
SLIDE 4

4

PhUSE 2011

Missing Values

data _null_ ; length char $ 10 ; num = . ; char = put( num, 8.-L); put num = / char = ; if missing(num) then put "num is missing"; if missing(char) then put "char is missing"; run; num=. char=. num is missing

slide-5
SLIDE 5

5

PhUSE 2011

Default Value is a Missing Value

data _null_; num_3 = w; put w = / num_1 = / num_2 = / num_3 = ; run; 81 data _null_; 82 83 num_3 = w; 84 85 put w = / num_1 = / num_2 = / num_3 = ; 86 87 run; NOTE: Variable w is uninitialized. NOTE: Variable num_1 is uninitialized. NOTE: Variable num_2 is uninitialized. w=. num_1=. num_2=. num_3=. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

slide-6
SLIDE 6

6

PhUSE 2011

Missing Codes

data _null_ ; num = .B ; if ( num = . ) then put "num is missing"; if missing( num ) then put "missing() thinks num is missing"; run; 65 data _null_ ; 66 67 num = .B ; 68 69 if ( num = . ) then put "num is missing"; 70 if missing( num ) then put "missing() thinks num is missing"; 71 run; missing() thinks num is missing NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

slide-7
SLIDE 7

7

PhUSE 2011

Missing System Option

§ Single Character § “Format” of missing values § Only applicable to output

  • ption missing = 'w';
slide-8
SLIDE 8

8

PhUSE 2011

Missing System Option – Example I

  • ption missing = '';

data _null_ ; length char $ 10 ; num = . ; char = put( num, 8.-L); put num = / char = ; if missing(num) then put "num is missing"; if missing(char) then put "char is missing"; run;

  • ption missing = '.';

num= char= num is missing char is missing

slide-9
SLIDE 9

9

PhUSE 2011

Missing System Option – Example II

data work.missing ; num_1 = .; num_2 = .B; run;

  • ption missing = 'w';

data _null_; set work.missing ; put num_1 = / num_2 = ; num_3 = w; run;

  • ption missing = '.'; * reset the missing to be a period again ;

96 97 option missing = 'w'; 98 99 data _null_; 100 set work.missing ; 101 102 put num_1 = / num_2 = ; 103 104 num_3 = w; 105 run; NOTE: Variable w is uninitialized. num_1=w num_2=B NOTE: There were 1 observations read from the data set WORK.MISSING. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

slide-10
SLIDE 10

10

PhUSE 2011

Assign Missing Values

data _null_; call missing( num_1, num_2, w ); num_3 = w; put num_1 = / num_2 = / num_3 = ; run; 122 data _null_; 123 124 call missing( num_1, num_2, w ); 125 num_3 = w; 126 127 put num_1 = / num_2 = / num_3 = ; 128 129 run; num_1=. num_2=. num_3=. NOTE: DATA statement used (Total process time): real time 0.05 seconds cpu time 0.01 seconds

slide-11
SLIDE 11

11

PhUSE 2011

Tests for Missing Values

Function Types Description missing() Numeric Character Tests if a single variable is missing. nmiss() Numeric Number of variables in the specified list with a missing value n() Numeric Number of variables in the specified list with a non-missing value cmiss() Numeric Character Number of variables in the specified list with a missing value

Introduced in SAS 9.2

if missing( cats(char_1 , char_2 )) then put "all of them are missing";

slide-12
SLIDE 12

12

PhUSE 2011

Summary

§

Missing values are valid values in SAS

§

Conversion of missing values

§

SAS System Option

§

Assign missing values

Ø “Period” notation Ø Missing Codes Ø CALL MISSING()

§

Testing for missing values

Ø MISSING() Ø NMISS() Ø N() Ø CMISS()

§

Consistent inconsistency

slide-13
SLIDE 13

13

PhUSE 2011

Questions & Comments

§

Introduction

§

Missing values

§

Missing system option

§

Assigning missing values

§

Testing for a missing value

§

Conclusion

Magnus Mengelbier Director Limelogic Ltd mmr@limelogic.com +44 208 144 5701

slide-14
SLIDE 14

14

PhUSE 2011

T H E E N D