/************************************************ How to Set up Missing Values in a SAS Data Set FILENAME: MISSING.SAS ***********************************************/ options formchar="|----|+|---+=|-/\<>*"; options pageno=1 nodate; title; /*READ IN RAW DATA. MISSING VALUES HAVE NOT BEEN REPLACED BY THE SAS MISSING VALUE CODE */ data owen; infile "owen.dat"; input fam_num childnum age sex race w_rank income_c height weight hemo vit_c vit_a head_cir fatfold b_weight mot_age b_order m_height f_height ; run; title "Owen Data. Missing Value Codes Have Not Been Fixed "; proc means data=owen; run; /*MISSING VALUES FOR NUMERIC VARIABLES*/ data owen; infile "owen.dat"; input fam_num childnum age sex race w_rank income_c height weight hemo vit_c vit_a head_cir fatfold b_weight mot_age b_order m_height f_height ; /*set up missing value codes*/ if vit_a = 99 then vit_a = .; if head_cir = 99 then head_cir = .; if fatfold = 99 then fatfold = .; if mot_age = 99 then mot_age = .; if b_order = 99 then b_order = .; if height = 999 then height = .; if weight = 999 then weight = .; if b_weight = 999 then b_weight = .; if m_height = 999 then m_height = .; if f_height = 999 then f_height = .; run; title "Owen Data. Missing Value Codes Have Been Replaced by . "; proc means data=owen; run; /*Create a Complete data set*/ data complete; set owen; if nmiss(of fam_num -- f_height)=0; run; title "Complete Data"; proc means data=complete; run; /*MISSING VALUES FOR CHARACTER VARIABLES*/ /*Read in original raw data*/ data test ; input name $ sex $ age city $; cards; Gene M 62 Saginaw Cyndi F 45 Unk Alice NA 51 Bay City Bob M 55 Unk ; proc print data=test; title "Test Data Set with Missing Values Still in Data Set"; run; /*Set up Missing Value Codes*/ data test ; input name $ sex $ age city $; if sex = "NA" then sex=' '; if city = "Unk" then city = ' '; cards; Gene M 62 Saginaw Cyndi F 45 Unk Alice NA 51 Bay City Bob M 55 Unk ; proc print data=test; title "Test Data Set with Missing Values Set to ' ' "; run;