OPTIONS LINESIZE=88 PAGESIZE=53 NOCENTER NODATE NONUMBER NOFMTERR; *******************************************************************; * PROJECT NAME: Learning to Use SAS ; * PROGRAM NAME LOCATION DATE PROGRAMMER ; TITLE1 "Source:LEC21P13.SAS Disk 1998#1 11/18/98 EJS " ; * Description: Example Womans Health Initiative Data at Baseline ; * 1 month, and 2 months ; *******************************************************************; LIBNAME new "C:\temp"; **********************************************; *** Read data *; **********************************************; DATA base ; SET new.lec21d1; ******************************************; *** Create quality variables for clinics *; ******************************************; IF clinic=1 THEN quality=8; IF clinic=2 THEN quality=1; LABEL quality="Quality*of*Clinic:*QUALITY"; DATA mth1; SET new.lec11d2; DATA mth2; SET new.lec11d3; ***************************************************; *** Add quality variable to other time points *; ***************************************************; *************************************************; *** Construct data with clinic and quality vars ; *************************************************; PROC SORT DATA=base; BY clinic; DATA base1 (KEEP=clinic quality f_clinic l_clinic); SET base; BY clinic; F_Clinic= FIRST.clinic; L_Clinic= LAST.clinic; LABEL F_clinic="First*Record*for*Clinic:*F_CLINIC" L_clinic="Last*Record*for*Clinic:*L_CLINIC"; PROC PRINT DATA=base1 SPLIT="*"; ID clinic; TITLE2 "Table 13.1. Illustration of List of FIRST. and LAST. automatic Variables"; TITLE3 " to create quality clinic variables"; DATA base1 (KEEP=clinic quality); SET base; BY clinic; IF FIRST.clinic; PROC PRINT DATA=base1 SPLIT="*"; ID clinic; TITLE2 "Table 13.2. Subset with quality values for clinic"; *************************************************************; *** Merge Quality with other time measures ****; *************************************************************; PROC SORT DATA=mth1; BY clinic; PROC SORT DATA=mth2; BY clinic; DATA mth1a; MERGE mth1 base1; BY clinic; DATA mth2a; MERGE mth2 base1; BY clinic; *****************************************************************; *** Sort all data in each time period by ID and quality of clinic; *****************************************************************; PROC SORT DATA=base; BY id quality; PROC SORT DATA=mth1a; BY id quality; PROC SORT DATA=mth2a; BY id quality; *****************************************************************; *** Select highest quality measure for each time period **; *****************************************************************; DATA base2; SET base; BY id ; IF FIRST.id; DATA mth1b; SET mth1a; BY id ; IF FIRST.id; DATA mth2b; SET mth2a; BY id ; IF FIRST.id; *****************************************************************; *** Combine data into 1 record per subject with highest quality ; *** measure of Fat intake ; *****************************************************************; DATA cfat (DROP=quality clinic fup); MERGE base2 mth1b mth2b; BY id ; PROC PRINT DATA=cfat SPLIT="*"; ID id ; TITLE2 "Table 13.3. Subject Follow-up Data with Highest quality Fat measure"; RUN;