Learn

Keep in Touch

SAS Press Series
1-800-727-0025
saspress@sas.com

SAS Press» Companion Site


Updates for SAS Programming in the Pharmaceutical Industry


***** The following changes were added to this page on January 23, 2009.*****

SAS Data Set AES:

The SAS data set aes, referenced on page 14 (program 1.3 and 1.4) in the book, is not available in the Example Code and Data file found on the SAS companion site because it was intended as a simple visual example. To create the data set, manually type the data from the table on page 14.

Microsoft Access and Microsoft Excel documents:

A section of the book in chapter 3 deals with importing Microsoft Access and Microsoft Excel data. The Microsoft documents referred to in this section are not provided because Microsoft often changes file formats with upgrades, and SAS changes PROC IMPORT when Microsoft changes file formats. To create these files, take the CSV (comma separated variable) text/datasets supplied in this book, and import those files into Microsoft Access or Excel. Save the Microsoft file and import it with book code.



***** The following changes will be incorporated in the third printing of this book in August 2008.*****

Page 86, in the data table at the bottom of the page, Subject=103 and Dosing Date=07OCT2003 is incorrect.

The corrected text is Subject=102 and the Dosing Date stays as it is as 07OCT2003.


Page 120, Program 4.14, code currently reads:

if visit = 0 then

baseline = value;

else if visit > 0 then
....

It should read:

if week = 0 then

baseline = value;
else if week > 0 then
....

"visit" gets replaced by "week".


Page 140, Program 5.3,the top line should read:

format n mean std min max $14.;

instead of....

format n mean sd min max $14.;

The t in std was lost somewhere in the first statement.


*****The following changes were incorporated in the second printing of this book in June 2007.*****

Page 25, Program 2.5, should include an End statement:

data endstudy;

set endstudy;
**** HARDCODE APPROVED BY DR. NAME AT SPONSOR ON 02/02/2005;
if subjid = "101-1002" and "&sysdate" <= "01MAY2005"d then
do;
discterm = "Death";
put "Subject " subjid "hardcoded to termination reason"
discterm;
end;
run;


Page 97, Program 4.5, code should be revised as follows:

**** INPUT SAMPLE NORMALIZED SYSTOLIC BLOOD PRESSURE VALUES.
**** SUBJECT = PATIENT NUMBER, VISIT = VISIT NUMBER,
**** SBP = SYSTOLIC BLOOOD PRESSURE.;
data sbp;
input subject $ visit sbp;
datalines;
101 1 160
101 2 150
101 3 140
101 4 130
101 5 120
202 1 141
202 2 151
202 3 161
202 4 171
202 5 181
;
run;

**** TRANSPOSE THE NORMALIZED SBP VALUES TO A FLAT STRUCTURE.;
proc transpose
   data = sbp
   out = sbpflat
   prefix = VISIT;
      by subject;
	   id visit;
      var sbp;
run;  


Page 115, Program 4.12, "demog" should be "death"

**** INPUT SAMPLE DEATH DATA WHERE SUBJECT = PATIENT NUMBER AND
**** DEATH = 1 IF PATIENT DIED, 0 IF NOT.;
data death;
input @1 subject $3.
      @5 death 1.;
datalines;
101 0
102 0
;
run;
**** SET DEATH = 1 FOR PATIENTS WHO HAD ADVERSE EVENTS THAT
**** RESULTED IN DEATH.;
data aes;
merge death aes;
by subject;
   if adverse_event = "Fatal MI" then
      death = 1;
run;

proc print
   data = aes;
run;