HW 17 Solution. 3/28/08 ============== libname home "."; options nocenter linesize=80; data home.PBC (drop=labels1-labels10); infile "ASCdata/pbcdata.asc"; if _N_=1 then input labels1-labels10 $ ; else input obs idnum dth evttime treatgp logbili agevar cirrh cchol albumin; if obs ne . ; run; .. "Invalid data" errors for the fields in the blank line!! NOTE: The data set HOME.PBC has 216 observations and 10 variables. proc print; where obs < 6; run; Obs obs idnum dth evttime treatgp logbili agevar cirrh cchol albumin 1 1 180 0 0 1 1.00000 36.598 0 0 37 2 2 188 0 0 0 1.36173 29.964 0 0 35 3 3 56 0 0 1 0.77815 81.451 0 0 36 4 4 19 0 0 0 1.92428 121.510 1 0 41 5 5 190 0 0 1 1.00000 60.340 0 0 32 (ii) proc means data=home.pbc mean N ; class treatgp; var agevar; run; Analysis Variable : agevar N treatgp Obs Mean N ------------------------------------------ 0 112 55.1976134 112 1 104 51.0668269 104 ------------------------------------------ /* OR */ proc means data=home.pbc NOPRINT ; class treatgp; var agevar; output out = outpbc mean = AvAge N = NumAge; data outpbc (keep = treatgp AvAge NumAge); set outpbc; if treatgp ne .; proc print; run; Num Obs treatgp AvAge Age 1 0 55.1976 112 2 1 51.0668 104 (iii) proc means data=home.pbc min max Q1 Q3 mean median std; var logbili albumin; Lower Upper Variable Minimum Maximum Quartile Quartile Mean Median Std Dev ------------------------------------------------------------------------- logbili 0.6989700 2.7226300 1.1760900 1.8692300 1.5404650 1.4982550 0.4472689 albumin 20.0000000 56.5000000 30.2500000 38.0000000 34.4643519 34.6000000 5.8433486 ------------------------------------------------------------------------- proc means data=home.pbc; /* could have omitted std dev by declaring only min max */ class dth treatgp cirrh cchol; var logbili ; run; Analysis Variable : logbili N dth treatgp cirrh cchol Obs N Mean Std Dev Minimum Maximum --------------------------------------------------------------------------------------------- 0 0 0 0 42 42 1.2552036 0.3042317 0.8451000 2.0718800 1 6 6 1.5893783 0.5487445 0.8451000 2.1731900 1 0 11 11 1.5182145 0.3039885 1.1139400 1.9242800 1 0 0 40 40 1.1803825 0.2824237 0.6989700 1.9637900 1 4 4 1.9262925 0.2349963 1.7403600 2.2695100 1 0 10 10 1.5392970 0.2478913 1.2041200 1.9867700 1 0 0 0 22 22 1.7462450 0.3479799 1.0000000 2.4653800 1 11 11 2.2100409 0.3302073 1.4771200 2.7226300 1 0 16 16 1.8077156 0.4069173 1.2041200 2.5078600 1 4 4 2.0339575 0.4386926 1.4471600 2.4683500 1 0 0 23 23 1.4886604 0.4015117 0.7781500 2.3463500 1 1 0 1 6 6 1.7670083 0.4753476 1.2552700 2.5611000 1 0 15 15 1.7215173 0.2145854 1.3222200 2.0334200 1 6 6 2.1701167 0.3167224 1.7160000 2.6263400 --------------------------------------------------------------------------------------------- /* NOTE that not all cases occur !!! */ (v) In the mean unix directory in WAM,after executing "tap SAS" and "tap R" and starting R session: > library(foreign) > tmpPBC = read.ssd(".","pbc") > dim(tmpPBC) [1] 216 10 > names(tmpPBC) [1] "OBS" "IDNUM" "DTH" "EVTTIME" "TREATGP" "LOGBILI" "AGEVAR" [8] "CIRRH" "CCHOL" "ALBUMIN" > tmpPBC[1:6,] OBS IDNUM DTH EVTTIME TREATGP LOGBILI AGEVAR CIRRH CCHOL ALBUMIN 1 1 180 0 0 1 1.00000 36.598 0 0 37 2 2 188 0 0 0 1.36173 29.964 0 0 35 3 3 56 0 0 1 0.77815 81.451 0 0 36 4 4 19 0 0 0 1.92428 121.510 1 0 41 5 5 190 0 0 1 1.00000 60.340 0 0 32 6 6 243 0 0 1 1.98677 29.964 1 0 34