DM 'CLE LOG; CLE OUT'; ******************************************************************** * Program name: HP85_KCAL.sas * Data source: 1985 NHIS Health Promotion and Disease Prevention (HPDP) Supplement * Date: AUGUST 2008 * Programmer: Division of Health Interview Statistics\NCHS\CDC * Input: C:\NHIS1985.HPDPSAMP.sas7bdat [1985 HPDP Supplement] * Output: C:\NHIS1985\HP85_KCAL.sas7bdat [1985 HPDP Supplement with recodes] * Note: All data files and SAS programs referenced below can be * accessed by going to the 'Guide for Data Users' on the * NHIS Physical Activity Information website available via * http://www.cdc.gov/nchs/nhis.htm *********************************************************************; * PRELIMINARY STEPS: * STEP 1: CREATE: Folder 'c:\nhis1985' on your c drive * STEP 2: SAVE: HPDPSAMP.exe in 'c:\nhis1985\' * STEP 3: CLICK: Double click on 'c:\nhis1985\HPDPSAMP.exe ' to extract HPDPSAMP.dat * STEP 4: COPY: HPDPSAMP.sas to 'c:\nhis1985\' * STEP 5: RUN: HPDPSAMP.sas (using HPDPSAMP.dat) to create dataset HPDPSAMP.sas 7bdat * STEP 6: GO TO: HP85_KCAL.sas (below) *****************************************************************************; options ls=96 ps=54 pageno=1 fmtsearch=(NHIS); LIBNAME NHIS "C:\\NHIS1985"; LIBNAME LIBRARY "C:\\NHIS1985"; %LET YEAR = 1985; %LET YY = %SYSFUNC(SUBSTR( &YEAR, 3, 2)); TITLE1 "NHIS 1985 PHYSICAL ACTIVITY - %sysfunc(today(),MMDDYY.) %sysfunc(time(),time8.)"; ******************************* * Create format for PA_LEVEL * *******************************; PROC FORMAT LIB=LIBRARY; VALUE PA_LEVEL 1 = "KCAL <1.5" 2 = "KCAL 1.5 TO <3.0" 3 = "KCAL 3.0+" 9 = "UNKNOWN"; VALUE KCAL 99999.9 = "Unknown" ; DATA HP85_KCAL ; SET NHIS.HPDPSAMP; ********************************************* * Rename variables to match 1998 PREVADLT.sas *********************************************; RENAME PX_459 = WALK PX_460 = WALK_T PX_462 = WALK_M PX_465 = WALK_H PX_466 = RUN PX_467 = RUN_T PX_469 = RUN_M PX_472 = RUN_H PX_473 = HIKE PX_474 = HIKE_T PX_476 = HIKE_M PX_479 = HIKE_H PX_480 = YARD PX_481 = YARD_T PX_483 = YARD_M PX_486 = YARD_H PX_487 = AEROBICS PX_488 = AERO_T PX_490 = AERO_M PX_493 = AERO_H PX_494 = DANCE PX_495 = DANCE_T PX_497 = DANCE_M PX_500 = DANCE_H PX_501 = CALIST PX_502 = CALIST_T PX_504 = CALIST_M PX_507 = CALIST_H PX_508 = GOLF PX_509 = GOLF_T PX_511 = GOLF_M PX_514 = GOLF_H PX_515 = TENNIS PX_516 = TENNIS_T PX_518 = TENNIS_M PX_521 = TENNIS_H PX_522 = BOWL PX_523 = BOWL_T PX_525 = BOWL_M PX_528 = BOWL_H PX_529 = BIKE PX_530 = BIKE_T PX_532 = BIKE_M PX_535 = BIKE_H PX_536 = SWIM PX_537 = SWIM_T PX_539 = SWIM_M PX_542 = SWIM_H PX_543 = YOGA PX_544 = YOGA_T PX_546 = YOGA_M PX_549 = YOGA_H PX_550 = WTLIFT PX_551 = LIFT_T PX_553 = LIFT_M PX_556 = LIFT_H PX_557 = BASKETBL PX_558 = BASKET_T PX_560 = BASKET_M PX_563 = BASKET_H PX_564 = BASEBALL PX_565 = BASEBL_T PX_567 = BASEBL_M PX_570 = BASEBL_H PX_571 = FOOTBALL PX_572 = FOOTBL_T PX_574 = FOOTBL_M PX_577 = FOOTBL_H PX_578 = SOCCER PX_579 = SOCCER_T PX_581 = SOCCER_M PX_584 = SOCCER_H PX_585 = VOLLEYBL PX_586 = VOLLEY_T PX_588 = VOLLEY_M PX_591 = VOLLEY_H PX_592 = RACQUET PX_593 = RACQ_T PX_595 = RACQ_M PX_598 = RACQ_H PX_599 = SKATING PX_600 = SKATE_T PX_602 = SKATE_M PX_605 = SKATE_H PX_606 = SKI_DH PX_607 = SKI_DH_T PX_609 = SKI_DH_M PX_612 = SKI_DH_H /* see below PX_613 = OTR_ACT1 */ PX_615 = OTR_A1_T PX_617 = OTR_A1_M PX_620 = OTR_A1_H /* see below PX_621 = OTR_ACT2 */ PX_623 = OTR_A2_T PX_625 = OTR_A2_M PX_628 = OTR_A2_H; **************************************************************** * Rename and convert two 'OTHER PHYSICAL ACTIVITY' variables * from 2 digits exercise indicator to 1 digit yes/no format * to be comparable to recode programs for 1990,1991, 1995, and 1998 ****************************************************************; IF (1 <= PX_613 <= 45 or PX_613=98)then OTR_ACT1 = 1; Else IF PX_613 = 0 then OTR_ACT1 = 2; Else IF PX_613 = 99 then OTR_ACT1 = 9; ELSE ; IF (1 <= PX_621 <= 45 or PX_621 = 98)then OTR_ACT2 = 1; Else IF PX_621 = 0 OR PX_621 = 2 then OTR_ACT2 = 2; Else IF PX_621 = 99 then OTR_ACT2 = 9; ELSE ; DATA NHIS.HP85_KCAL (DROP=I T M H INTEN1--INTEN72); SET HP85_KCAL; ******************************************* * Create labels for KCAL of each physical activity * *******************************************; LABEL KCAL = "TOTAL KILOCALORIES PER DAY" WALK_K = "KILOCALORIES WHEN WALKING" RUN_K = "KILOCALORIES WHEN JOGGING" HIKE_K = "KILOCALORIES WHEN HIKING" YARD_K = "KILOCALORIES WHEN GARDENING" AERO_K = "KILOCALORIES WHEN DOING AEROBICS" DANCE_K = "KILOCALORIES WHEN DANCING" CALIST_K = "KILOCALORIES WHEN DOING CALISTHENICS" GOLF_K = "KILOCALORIES WHEN PLAYING GOLF" TENNIS_K = "KILOCALORIES WHEN PLAYING TENNIS" BOWL_K = "KILOCALORIES WHEN BOWLING" BIKE_K = "KILOCALORIES WHEN BICYCLE RIDING" SWIM_K = "KILOCALORIES WHEN SWIMMING" YOGA_K = "KILOCALORIES DOING YOGA" LIFT_K = "KILOCALORIES WHEN WEIGHT LIFTING" BASKET_K = "KILOCALORIES WHEN PLAYING BASKETBALL" BASEBL_K = "KILOCALORIES WHEN PLAYING BASEBALL" FOOTBL_K = "KILOCALORIES WHEN PLAYING FOOTBALL" SOCCER_K = "KILOCALORIES WHEN PLAYING SOCCER" VOLLEY_K = "KILOCALORIES WHEN PLAYING VOLLEYBALL" RACQ_K = "KILOCALORIES WHEN PLAYING HANDBALL" SKATE_K = "KILOCALORIES WHEN SKATING" SKI_DH_K = "KILOCALORIES WHEN SKIED DOWNHILL" OTR_A1_K = "KILOCALORIES PLAYING OTHER SPORT 1" OTR_A2_K = "KILOCALORIES PLAYING OTHER SPORT 2" PA_LEVEL = "PHYSICAL ACTIVITY LEVEL" ; ************************************************************; * Assign arrays for do loop calculation *; ************************************************************; ARRAY EXERCISE(24) WALK RUN HIKE YARD AEROBICS DANCE CALIST GOLF TENNIS BOWL BIKE SWIM YOGA WTLIFT BASKETBL BASEBALL FOOTBALL SOCCER VOLLEYBL RACQUET SKATING SKI_DH OTR_ACT1 OTR_ACT2; ARRAY TIMES(24) WALK_T RUN_T HIKE_T YARD_T AERO_T DANCE_T CALIST_T GOLF_T TENNIS_T BOWL_T BIKE_T SWIM_T YOGA_T LIFT_T BASKET_T BASEBL_T FOOTBL_T SOCCER_T VOLLEY_T RACQ_T SKATE_T SKI_DH_T OTR_A1_T OTR_A2_T; ARRAY MINUTES(24) WALK_M RUN_M HIKE_M YARD_M AERO_M DANCE_M CALIST_M GOLF_M TENNIS_M BOWL_M BIKE_M SWIM_M YOGA_M LIFT_M BASKET_M BASEBL_M FOOTBL_M SOCCER_M VOLLEY_M RACQ_M SKATE_M SKI_DH_M OTR_A1_M OTR_A2_M; ARRAY HRT_RATE(24) WALK_H RUN_H HIKE_H YARD_H AERO_H DANCE_H CALIST_H GOLF_H TENNIS_H BOWL_H BIKE_H SWIM_H YOGA_H LIFT_H BASKET_H BASEBL_H FOOTBL_H SOCCER_H VOLLEY_H RACQ_H SKATE_H SKI_DH_H OTR_A1_H OTR_A2_H; ARRAY KCALPI(24) WALK_K RUN_K HIKE_K YARD_K AERO_K DANCE_K CALIST_K GOLF_K TENNIS_K BOWL_K BIKE_K SWIM_K YOGA_K LIFT_K BASKET_K BASEBL_K FOOTBL_K SOCCER_K VOLLEY_K RACQ_K SKATE_K SKI_DH_K OTR_A1_K OTR_A2_K; ARRAY INTEN(24,3) (3, 4, 5, /* 1 Walk */ 9, 11, 13, /* 2 Running */ 3, 6, 8, /* 3 Hiking */ 3, 5, 7, /* 4 Yard */ 4, 6, 9, /* 5 Aerobics */ 4, 5, 7, /* 6 Dancing */ 3.5, 5.5, 8.5, /* 7 Calistenics */ 3, 3, 3, /* 8 Golf */ 4, 6, 10, /* 9 Tennis */ 2, 2.5, 3, /* 10 Bowling */ 3, 7, 10, /* 11 Biking */ 3, 5, 7, /* 12 Swimming [Note: Differs from 1991-1998]*/ 2, 2, 2, /* 13 Yoga */ 3, 5, 7, /* 14 Wt Lifting */ 6, 8, 11, /* 15 Basketball */ 3, 4, 5, /* 16 Baseball */ 5, 6, 7.5, /* 17 Football */ 5, 7, 11, /* 18 Soccer */ 5, 6, 8, /* 19 Volleyball */ 6, 9, 12, /* 20 Handball/Racquetball */ 4.5, 7, 10.5, /* 21 Skating */ 4, 7, 10, /* 22 Skiing [Note: Differs from 1991-1998]*/ 3, 4, 5, /* 23 Other EXERCISE 1 */ 3, 4, 5); /* 24 Other EXERCISE 2 */ ************************************************************ * Do loop to check status of all activities and sum up * * final value of KCAL for a person * ************************************************************; LENGTH T 3 M 3 H 3; KCAL = 0; ANYYES = 0; ANYGOOD = 0; ANYDK = 0; DO I = 1 TO 24; T = TIMES(I); M = MINUTES(I); H = HRT_RATE(I); IF EXERCISE(I) EQ 1 THEN DO; ANYYES = 1; IF (1 LE T LE 98) AND (1 LE M LE 997) THEN DO; ANYGOOD = 1; SELECT; WHEN (H IN (4, 9)) H = 1; WHEN (H IN (1, 2, 3)); OTHERWISE ; END; KCALPI(I) = ROUND (T * M / 60 * INTEN(I,H) / 14, .1) ; IF KCALPI(I) GT 99999.5 THEN KCALPI(I) = 99999.5; * Topcode where KCAL=99999.5+ *; KCAL + KCALPI(I); END; ELSE ANYDK = 1; END; ELSE IF EXERCISE(I) EQ 9 THEN ANYDK = 1; ELSE; END; IF ANYGOOD = 1 THEN ANYDK = 0; ELSE; *----------------------------------------------; SELECT; WHEN (ANYYES) DO; IF ANYGOOD THEN KCAL = ROUND (KCAL, .1); ELSE IF ANYDK THEN KCAL = 99999.9; ELSE; END; OTHERWISE DO; IF (ANYDK) THEN KCAL = 99999.9; ELSE KCAL = 0; END; END; ************************************************** * Assign value for PA_LEVEL based on KCAL * **************************************************; SELECT; WHEN (0.0 LE KCAL LT 1.5) DO; PA_LEVEL = 1; END; WHEN (1.5 LE KCAL LT 3.0) DO; PA_LEVEL =2; END; WHEN (3.0 LE KCAL LE 99999.5) DO; PA_LEVEL = 3; END; WHEN (KCAL EQ 99999.9) DO; PA_LEVEL = 9; END; END; RUN; proc freq data=NHIS.HP85_KCAL ; tables PA_LEVEL KCAL ; format PA_LEVEL PA_LEVEL. KCAL KCAL.; run;