/* The values of the variable SURGERY are codes that indicate */ /* the type of surgery. The format $SUR. translates the surgery */ /* codes into something more meaningful. */ proc format; value $sur 'cnt'='Controls' 'adx'='Adrenalectomy' 'ovx'='Ovariectomy' 'avx'='Adren./Ovariect.' ; run; /* Create the data set containing the research results. */ data mouse; input surgery $ con brom nal morph bmor nmor; cards; cnt 10 5 15 15 20 12 adx 5 9 12 18 9 25 ovx 11 11 18 3 8 12 avx 15 10 10 0 5 12 ; run; /* Create the report. */ options pagesize=30 /* Set the length of the page. */ linesize=78; /* Set the maximum line length for the page. */ data _null_; set mouse end=eof; /* The FILE statement uses the HEADER= */ /* option to print a standard header at the */ /* beginning of each new page. The NOTITLE */ /* option suppresses any SAS titles, date, */ /* time headers and page numbers. The output */ /* report is sent to the output window. */ file print /* Send output to the output window. */ header=H /* Every time a new page is started */ /* execute the contents of a block */ /* labeled 'H'. */ n=ps /* Readdress different parts of the page. */ linesleft=lleft /* The variable LLEFT contains the */ /* number of lines left on the page. */ notitle; /* Suppresses normal SAS titles and */ /* headers. */ /* Compare each value of an observation to find the */ /* maximum value for emphasis in the table. */ array treat(6) con brom nal morph bmor nmor; /* Get maximum value for the observation. */ mx=max( con,brom,nal,morph,bmor,nmor); /* Initialize column pointer control. */ /* Begin at column 30 for surgery */ /* and start counting columns from */ /* that value. */ ctr=30; /* Use a PUT statement to output a row of the table. */ put @1 surgery $sur. @; /* Check if the value is maximum then mark with '*'. */ do i=1 to 6; if treat(i)=mx then put @ctr '*' treat(i) @; else put @ctr+1 treat(i) @; ctr+8; end; put; /* Release the row of the table. */ /* Check to see if the program has reached 5 lines */ /* from the bottom of the page or the end of the data. */ /* If either condition is true, print the footnote. */ if lleft=5 or eof then do; put // @5 '* Represents maximum value across drug treatments ' for surgery.'; if not eof then put _page_; /* If the end of the page is */ /* reached and there is more */ /* data, then start a new page. */ end; return; H: /* Add title and header for each page. */ put @5 'Surgery by Drug treatment' // @5 'C57BL6J Mice' // ; /* Put divider line on table. */ x=repeat('-',76); put @1 x; /* Add column headings. */ put @1 'Surgery' @30 'Contr.' @37 'Bromo.' @45 'Nalox.' @53 'Morph.' @61 'Br/Mor.' @69 'Na/Mor.' ; /* Generate divider line. */ put @1 x //; return; run;