%let Pgm=utFrqPat; * You perform a simple proc freq on some HIV data ( made up data here ) Table of HIV by WBC HIV WBC(White Blood Cell Count) Frequency‚LO ‚HI ‚ Total ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ POS ‚ 31 ‚ 4 ‚ 35 ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ NEG ‚ 8 ‚ 24 ‚ 32 ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ Total 39 28 67 * but you would like a tabulation of patients in each cell. You need this for quality control: HIV WBCLow(Patients) WBCHi(Patients) ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ POS 001 004 005 011 014 066 070 126 129 015 018 019 022 024 025 026 043 048 053 060 073 076 089 104 106 118 122 123 132 133 146 169 175 181 187 NEG 211 247 256 258 314 194 218 222 227 231 331 365 366 253 257 259 261 264 267 269 270 277 285 286 303 307 309 311 315 320 324 338 =========== Solution: ===========; Data HivWbc ( Label="Exit HIV White Blood Cell Count made up data" Keep=Patient HIV WBC ) FinTwoRec ( Label="Need two Identical records for Proc Report" Keep= Hiv WbcLo WbcHi ); Label WBC="White Blood Cell Count"; Infile DataLines Eof=Done; Length PosLo PosHi NegLo NegHi WbcLo WbcHi $200; /* Place to hold patient ids used by Proc Report*/ Retain PosLo PosHi NegLo NegHi WbcLo WbcHi; /* Place to hold patient ids used by Proc Report*/ Input Patient : $3. HIV : $3. WBC : $2. @@; Select ; When ( Hiv='POS' and Wbc='LO' ) PosLo=trim(PosLo)!!' '!!Patient; When ( Hiv='POS' and Wbc='HI' ) PosHi=trim(PosHi)!!' '!!Patient; When ( Hiv='NEG' and Wbc='LO' ) NegLo=trim(NegLo)!!' '!!Patient; When ( Hiv='NEG' and Wbc='HI' ) NegHi=trim(NegHi)!!' '!!Patient; Otherwise; End; output HivWbc; return; Done: Hiv="Pos"; WbcLo=Left(PosLo); WbcHi=Left(PosHi); Output FinTwoRec; Hiv="Neg"; WbcLo=Left(NegLo); WbcHi=Left(NegHi); Output FinTworec;; Stop; Datalines; 001 POS LO 004 POS LO 005 POS LO 011 POS LO 014 POS LO 015 POS LO 018 POS LO 019 POS LO 022 POS LO 024 POS LO 025 POS LO 026 POS LO 043 POS LO 048 POS LO 053 POS LO 060 POS LO 066 POS HI 070 POS HI 073 POS LO 076 POS LO 089 POS LO 104 POS LO 106 POS LO 118 POS LO 122 POS LO 123 POS LO 126 POS HI 129 POS HI 132 POS LO 133 POS LO 146 POS LO 169 POS LO 175 POS LO 181 POS LO 187 POS LO 194 NEG HI 211 NEG LO 218 NEG HI 222 NEG HI 227 NEG HI 231 NEG HI 247 NEG LO 253 NEG HI 256 NEG LO 257 NEG HI 258 NEG LO 259 NEG HI 261 NEG HI 264 NEG HI 267 NEG HI 269 NEG HI 270 NEG HI 277 NEG HI 285 NEG HI 286 NEG HI 303 NEG HI 307 NEG HI 309 NEG HI 311 NEG HI 314 NEG LO 315 NEG HI 320 NEG HI 324 NEG HI 331 NEG LO 338 NEG HI 365 NEG LO 366 NEG LO ; Run; *===================================; * Count 2x2 Table; /*---------------------------------------------*\ | Used for display purposes only not needed | \*---------------------------------------------*/ Proc Freq Data=Xit_HivWbc Order=Data ; Tables HIV * WBC / nocol norow nopct; Run; *===================================; * Patient 2x2 Table; options ls=255 ps=50;run; Proc Report Data=FinTwoRec Nowd Headline HeadSkip ; Cols HIV WbcLo WbcHi ; define Hiv / order ; define WbcLo / display width=22 flow; define WbcHi / display width=22 flow; break after hiv / skip; quit; run;