NOTE: Copyright (c) 1989-1996 by SAS Institute Inc., Cary, NC, USA. NOTE: SAS (r) Proprietary Software Release 6.11 TS040 Licensed to DUKE UNIVERSITY, Site 0009733001. 1 /****************************************************** 2 * This program reads in a:\srcddata.dat and * 3 * writes out data sets in various formats to a: drive * 4 ******************************************************/ 5 6 filename srcddata 'a:\srcddata.dat'; 7 filename srcdfull 'a:\srcdfull.dat'; 8 filename srcdmiss 'a:\srcdmiss.dat'; 9 filename fulllev1 'a:\fulllev1.dat'; 10 filename fulllev2 'a:\fulllev2.dat'; 11 filename misslev1 'a:\misslev1.dat'; 12 filename misslev2 'a:\misslev2.dat'; 13 14 options nocenter linesize=80; 15 data srcd; infile srcddata; 16 ** Inputting data in free format -- missing data denoted by 999; 17 input anti1 anti2 anti3 anti4 read1 read2 read3 read4 18 gen momage kidage homecog homeemo id; 19 ** Computing Time variable for possible use in HLM analysis; 20 time1=0; time2=1; time3=2; time4=3; 21 ** Setting values of 999 for anti & read; 22 ** to system missing for SAS computations; 23 array x{8} anti1--read4; do i=1 to 8; if x{i}=999 then x{i}=.; end; 24 run; NOTE: The infile SRCDDATA is: FILENAME=a:\srcddata.dat, RECFM=V,LRECL=256 NOTE: 405 records were read from the infile SRCDDATA. The minimum record length was 110. The maximum record length was 110. NOTE: The data set WORK.SRCD has 405 observations and 19 variables. NOTE: The DATA statement used 5.07 seconds. 25 26 /************************************************************* 27 * Creating SAS internal dataset named NOMISS that contains * 28 * only cases with complete data on all measures * 29 * at all time points -- Results in N=221 * 30 *************************************************************/ 31 32 data nomiss; set srcd; 33 if nmiss(of gen momage kidage homecog homeemo 34 anti1-anti4 read1-read4)=0; 35 run; NOTE: The data set WORK.NOMISS has 221 observations and 19 variables. NOTE: The DATA statement used 1.32 seconds. 36 37 /************************************************************ 38 * Creating SAS internal dataset named MISS that contains * 39 * cases with complete data on only Time 1 measures * 40 * and partially missing thereafter: Results in N=405 * 41 ************************************************************/ 42 43 data miss; set srcd; 44 if nmiss(of gen momage kidage homecog homeemo anti1 read1)=0; 45 run; NOTE: The data set WORK.MISS has 405 observations and 19 variables. NOTE: The DATA statement used 2.14 seconds. 46 47 /***************************************************************** 48 * Some basic descriptive statistics on data sets NOMISS and MISS * 49 *****************************************************************/ 50 51 proc freq data=nomiss; 52 Title 'Frequencies for complete data set: N=221'; 53 tables gen momage kidage homecog homeemo anti1-anti4 read1-read4; 54 run; NOTE: For table location in print file, see page 1 for GEN page 1 for MOMAGE page 1 for KIDAGE page 2 for HOMECOG page 2 for HOMEEMO page 2 for ANTI1 page 3 for ANTI2 page 3 for ANTI3 page 3 for ANTI4 page 4 for READ1 page 5 for READ2 page 6 for READ3 page 7 for READ4 NOTE: The PROCEDURE FREQ used 3.72 seconds. 55 56 proc freq data=miss; 57 Title 'Frequencies for partially complete data set: N=405'; 58 tables gen momage kidage homecog homeemo anti1-anti4 read1-read4; 59 run; NOTE: For table location in print file, see page 8 for GEN page 8 for MOMAGE page 8 for KIDAGE page 9 for HOMECOG page 9 for HOMEEMO page 9 for ANTI1 page 10 for ANTI2 page 10 for ANTI3 page 10 for ANTI4 page 11 for READ1 page 12 for READ2 page 13 for READ3 page 14 for READ4 NOTE: The PROCEDURE FREQ used 1.17 seconds. 60 61 proc means data=nomiss; 62 Title 'Means for complete data set: N=221'; 63 var gen momage kidage homecog homeemo anti1-anti4 read1-read4; 64 run; NOTE: The PROCEDURE MEANS used 0.76 seconds. 65 66 proc means data=miss; 67 Title 'Means for partially complete data set: N=405'; 68 var gen momage kidage homecog homeemo anti1-anti4 read1-read4; 69 run; NOTE: The PROCEDURE MEANS used 0.36 seconds. 70 71 proc sort data=nomiss; by gen; run; NOTE: The data set WORK.NOMISS has 221 observations and 19 variables. NOTE: The PROCEDURE SORT used 1.55 seconds. 72 proc sort data=miss; by gen; run; NOTE: The data set WORK.MISS has 405 observations and 19 variables. NOTE: The PROCEDURE SORT used 1.46 seconds. 73 74 proc means data=nomiss; 75 Title 'Means for complete data set conditioned on gender: N=221'; 76 Title2 'Female=0, Male=1'; 77 var momage kidage homecog homeemo anti1-anti4 read1-read4; by gen; 78 run; NOTE: The PROCEDURE MEANS used 0.64 seconds. 79 80 proc means data=miss; 81 Title 'Means for partially complete data set conditioned on gender: N=405'; 82 Title2 'Female=0, Male=1'; 83 var momage kidage homecog homeemo anti1-anti4 read1-read4; by gen; 84 run; NOTE: The PROCEDURE MEANS used 0.49 seconds. 85 86 proc corr data=nomiss; 87 Title 'Correlations for complete data set: N=221'; Title2 ' '; 88 var gen momage kidage homecog homeemo anti1-anti4 read1-read4; 89 run; NOTE: The PROCEDURE CORR used 0.91 seconds. 90 91 proc corr data=miss; 92 Title 'Correlations for partially complete data set: N=405'; 93 var gen momage kidage homecog homeemo anti1-anti4 read1-read4; 94 run; NOTE: The PROCEDURE CORR used 0.41 seconds. 95 96 /*********************************************** 97 * The following lines read out the complete * 98 * and missing data sets in various formats for * 99 * potential input into other software packages * 100 ***********************************************/ 101 102 proc sort data=nomiss; by id; run; NOTE: The data set WORK.NOMISS has 221 observations and 19 variables. NOTE: The PROCEDURE SORT used 1.42 seconds. 103 proc sort data=miss; by id; run; NOTE: The data set WORK.MISS has 405 observations and 19 variables. NOTE: The PROCEDURE SORT used 1.35 seconds. 104 105 /***************************************************** 106 * Reading NOMISS to outfile SRCDFULL, * 107 * N=221 cases, 1 record per case, 221 total records * 108 *****************************************************/ 109 110 data _null_; set nomiss; file srcdfull; 111 put #1 (anti1-anti4 read1-read4 112 gen momage kidage homecog homeemo id) (13*f8.2,f6.0); 113 run; NOTE: The file SRCDFULL is: FILENAME=a:\srcdfull.dat, RECFM=V,LRECL=256 NOTE: 221 records were written to the file SRCDFULL. The minimum record length was 110. The maximum record length was 110. NOTE: The DATA statement used 4.04 seconds. 114 115 /****************************************************** 116 * Reading MISS to outfile SRCDMISS, * 117 * N=405 cases, 1 record per case, 405 total records * 118 ******************************************************/ 119 120 data _null_; set miss; file srcdmiss; 121 ** Recoding missing values to 999 for potential input into HLM program; 122 array x{8} anti1--read4; do i=1 to 8; if x{i}=. then x{i}=999; end; 123 put #1 (anti1-anti4 read1-read4 124 gen momage kidage homecog homeemo id) (13*f8.2,f6.0); 125 run; NOTE: The file SRCDMISS is: FILENAME=a:\srcdmiss.dat, RECFM=V,LRECL=256 NOTE: 405 records were written to the file SRCDMISS. The minimum record length was 110. The maximum record length was 110. NOTE: The DATA statement used 5.09 seconds. 126 127 /****************************************************************** 128 * Reading NOMISS to outfile FULLLEV1 for Level 1 HLM data file, * 129 * N=221 cases, 4 records per case, 884 total records * 130 ******************************************************************/ 131 132 data _null_; set nomiss; file fulllev1; 133 put #1 (id time1 anti1 read1) (f6.0,3*8.2); 134 put #2 (id time2 anti2 read2) (f6.0,3*8.2); 135 put #3 (id time3 anti3 read3) (f6.0,3*8.2); 136 put #4 (id time4 anti4 read4) (f6.0,3*8.2); 137 run; NOTE: The file FULLLEV1 is: FILENAME=a:\fulllev1.dat, RECFM=V,LRECL=256 NOTE: 884 records were written to the file FULLLEV1. The minimum record length was 30. The maximum record length was 30. NOTE: The DATA statement used 6.98 seconds. 138 139 /****************************************************************** 140 * Reading NOMISS to outfile FULLLEV2 for Level 2 HLM data file, * 141 * N=221 cases, 1 record per case, 221 total records * 142 ******************************************************************/ 143 144 data _null_; set nomiss; file fulllev2; 145 put #1 (id gen momage kidage homecog homeemo) (f6.0,5*f8.2); 146 run; NOTE: The file FULLLEV2 is: FILENAME=a:\fulllev2.dat, RECFM=V,LRECL=256 NOTE: 221 records were written to the file FULLLEV2. The minimum record length was 46. The maximum record length was 46. NOTE: The DATA statement used 2.78 seconds. 147 148 /***************************************************************** 149 * Reading MISS to outfile MISSLEV1 for Level 1 HLM data file, * 150 * N=405 cases, 4 records per case, 1620 total records * 151 *****************************************************************/ 152 153 data _null_; set miss; file misslev1; 154 ** Recoding missing values to 999 for potential input into HLM program; 155 array x{8} anti1--read4; do i=1 to 8; if x{i}=. then x{i}=999; end; 156 put #1 (id time1 anti1 read1) (f6.0,3*f8.2); 157 put #2 (id time2 anti2 read2) (f6.0,3*f8.2); 158 put #3 (id time3 anti3 read3) (f6.0,3*f8.2); 159 put #4 (id time4 anti4 read4) (f6.0,3*f8.2); 160 run; NOTE: The file MISSLEV1 is: FILENAME=a:\misslev1.dat, RECFM=V,LRECL=256 NOTE: 1620 records were written to the file MISSLEV1. The minimum record length was 30. The maximum record length was 30. NOTE: The DATA statement used 9.57 seconds. 161 162 /*************************************************************** 163 * Reading MISS to outfile FULLLEV2 for Level 2 HLM data file * 164 * N=405 cases, 1 record per case, 405 total records * 165 ***************************************************************/ 166 167 data _null_; set miss; file misslev2; 168 ** Recoding missing values to 999 for potential input into HLM program; 169 array x{8} anti1--read4; do i=1 to 8; if x{i}=. then x{i}=999; end; 170 put #1 (id gen momage kidage homecog homeemo) (f6.0,5*f8.2); 171 run; NOTE: The file MISSLEV2 is: FILENAME=a:\misslev2.dat, RECFM=V,LRECL=256 NOTE: 405 records were written to the file MISSLEV2. The minimum record length was 46. The maximum record length was 46. NOTE: The DATA statement used 3.78 seconds.