/****************************************************************\ PROGRAM: C:\MEPS\PROG\EXAMPLE07.SAS DESCRIPTION: THIS EXAMPLE SHOWS HOW TO COMPUTE PERSON-LEVEL PRESCRIBED MEDICINE EXPENDITURES FOR PERSONS WITH AT LEAST ONE PMED EVENT. INPUT FILES: C:\MEPS\DATA\H77A.SAS7BDAT (2003 PMED EVENTS FILE) C:\MEPS\DATA\H79.SAS7BDAT (2003 FULL-YEAR DATA FILE) \****************************************************************/ FOOTNOTE 'PROGRAM: C:\MEPS\PROG\PMED\EXAMPLE07.SAS'; LIBNAME CDATA V8 'C:\MEPS\DATA'; TITLE1 'AHRQ MEPS DATA USERS WORKSHOP -- JULY 2006'; TITLE2 'PERSON LEVEL PRESCRIBED MEDICINE EXPENDITURES'; PROC FORMAT; VALUE AGECAT .='TOTAL' 1='UNDER 18' 2='18 - 64' 3='65 AND OLDER' ; VALUE RACETHN 1 = 'HISPANIC' 2 = 'BLACK' 3 = 'ASIAN' 4 = 'OTHER'; VALUE INSCOV 1 = 'ANY PRIVATE' 2 = 'PUBLIC ONLY' 3 = 'UNINSURED'; RUN; /***** USE THE PMED EVENTS FILE (HC-077A) TO IDENTIFY *****/ /***** PERSON WITH AT LEAST ONE PMED EVENT. *****/ PROC SORT DATA= CDATA.H77A (KEEP= DUPERSID) OUT= PUF77A NODUPKEY; BY DUPERSID; RUN; DATA PUF79 ; SET CDATA.H79 (KEEP= DUPERSID AGE: RX: RACETHNX PERWT03F VAR: INSCOV03); IF AGE03X>=0 THEN AGE=AGE03X; ELSE IF AGE53X>=0 THEN AGE=AGE53X; ELSE IF AGE42X>=0 THEN AGE=AGE42X; ELSE IF AGE31X>=0 THEN AGE=AGE31X; ELSE AGE=AGE03X; IF 0<= AGE <18 THEN AGECAT=1; ELSE IF 18 <= AGE <65 THEN AGECAT=2; ELSE IF AGE>=65 THEN AGECAT=3; OTHER=(RXEXP03-(RXMCD03+RXMCR03+RXPRV03+RXSLF03)); RXEXP03X=RXEXP03/1000; RXMCD03X=RXMCD03/1000; RXMCR03X=RXMCR03/1000; RXPRV03X=RXPRV03/1000; RXSLF03X=RXSLF03/1000; OTHERX=OTHER/1000; LABEL AGECAT='AGE IN YEARS' RACETHNX='RACE/ETHNICITY' INSCOV03='INSURANCE STATUS' RXEXP03='TOTAL PMED EXP' RXMCD03='MEDICAID' RXMCR03='MEDICARE' RXPRV03='PRIVATE' RXSLF03='OUT-OF-POCKET' OTHER='OTHER' RXEXP03X='TOTAL PMED EXP' RXMCD03X='MEDICAID' RXMCR03X='MEDICARE' RXPRV03X='PRIVATE' RXSLF03X='OUT-OF-POCKET' OTHERX='OTHER'; RUN; PROC SORT DATA= PUF79; BY DUPERSID; RUN; /***** USE FILE MERGE AS A FILTER, KEEP ONLY PERSONS *****/ /***** ON THE PMED EVENT FILE. *****/ DATA PUF79; MERGE PUF77A (IN= A) PUF79; BY DUPERSID; IF A; RUN; PROC SURVEYMEANS DATA= PUF79 MEAN STDERR SUM STD; VAR RXEXP03; STRATA VARSTR; CLUSTER VARPSU; WEIGHT PERWT03F; RUN; TITLE3 'DOLLARS IN THOUSANDS'; PROC TABULATE DATA=PUF79 MISSING FORMAT=DOLLAR12.0 ; CLASS AGECAT RACETHNX INSCOV03; VAR RXEXP03X RXSLF03X RXPRV03X RXMCR03X RXMCD03X OTHERX; FORMAT AGECAT AGECAT. RACETHNX RACETHN. INSCOV03 INSCOV. ; TABLE ALL='TOTAL' AGECAT RACETHNX INSCOV03 , RXEXP03X*SUM RXSLF03X*SUM RXPRV03X*SUM RXMCR03X*SUM RXMCD03X*SUM OTHERX*SUM /RTS=24 BOX='2003 TOTAL PMED EXPENDITURES'; WEIGHT PERWT03F; RUN; TITLE3 'MEAN EXPENDITURES'; PROC TABULATE DATA=PUF79 MISSING FORMAT=DOLLAR12.0 ; CLASS AGECAT RACETHNX INSCOV03 ; VAR RXEXP03 RXSLF03 RXPRV03 RXMCR03 RXMCD03 OTHER; FORMAT AGECAT AGECAT. RACETHNX RACETHN. INSCOV03 INSCOV. ; TABLE ALL='TOTAL' AGECAT RACETHNX INSCOV03, RXEXP03*MEAN RXSLF03*MEAN RXPRV03*MEAN RXMCR03*MEAN RXMCD03*MEAN OTHER*MEAN /RTS=24 BOX='2003 MEAN PMED EXPENDITURES'; WEIGHT PERWT03F; RUN;