proc tabulate, a challenge? - sascommunity tabulate, a...proc tabulate, a challenge? tove...

12
PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces and markets contrast agents for diagnostic imaging. To get approval from the health author- ities to produce and market a new contrast medium we have to document the quality, through efficacy and safety. A new medium will of course be tested first in the laborato- ries, and if the results from this research are statisfying, healthy volunteers and patients will be asked to participate in clinical trials. The Clinical Department is responsible for the clinical trials and the Statistical Department is involved in the planning of the trials, as well as the analyses and presentation of the results. NYCOMED has grown a lot the past few years and the number of statisticians have increased from 2 in 1985 to 6 today. In addition one data specialist and one secretary are involved in dataprocessing in the Statistical Department. During the summer, two more persons will be employed to cooperate with the statisticians in the production of tables and plots displaying the results. In the autumn of 1986, PC SAS was introduced as our statistical and presentational tool. After approximately one year, we started to think of how to standardize and optimize our work with the presentation of the results from the clinical trials. We are now in the process of finalizing these standard programs. In a randomized, double blind comparative clinical trial where a new contrast medium is compared to a medium in routine use, the patients are asked whether they feel pain or other kinds of discomfort in connection with the roentgen examination. Any reported adverse events are registered and we are of course interested to detect whether there are differences in the frequency of these events between the two patient groups. Information about adverse events are presented in one standard table for all our clinical studies. While we were working on a standard method for presenting adverse events we discovered that even SAS and PROC TABLULATE has its limitations. I am going to present one of our standard tables for adverse events. The next page shows part of a SAS data set containing adverse events reported in a clinical trial. 72

Upload: ngotuyen

Post on 13-May-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

PROC TABULATE, A Challenge?

Tove Kristoffersen NYCOMED AS

NYCOMED AS is a pharmaceutical company which mainly develops, produces and markets contrast agents for diagnostic imaging. To get approval from the health author­ities to produce and market a new contrast medium we have to document the quality, through efficacy and safety. A new medium will of course be tested first in the laborato­ries, and if the results from this research are statisfying, healthy volunteers and patients will be asked to participate in clinical trials. The Clinical Department is responsible for the clinical trials and the Statistical Department is involved in the planning of the trials, as well as the analyses and presentation of the results.

NYCOMED has grown a lot the past few years and the number of statisticians have increased from 2 in 1985 to 6 today. In addition one data specialist and one secretary are involved in dataprocessing in the Statistical Department. During the summer, two more persons will be employed to cooperate with the statisticians in the production of tables and plots displaying the results.

In the autumn of 1986, PC SAS was introduced as our statistical and presentational tool. After approximately one year, we started to think of how to standardize and optimize our work with the presentation of the results from the clinical trials. We are now in the process of finalizing these standard programs.

In a randomized, double blind comparative clinical trial where a new contrast medium is compared to a medium in routine use, the patients are asked whether they feel pain or other kinds of discomfort in connection with the roentgen examination. Any reported adverse events are registered and we are of course interested to detect whether there are differences in the frequency of these events between the two patient groups. Information about adverse events are presented in one standard table for all our clinical studies. While we were working on a standard method for presenting adverse events we discovered that even SAS and PROC TABLULATE has its limitations. I am going to present one of our standard tables for adverse events.

The next page shows part of a SAS data set containing adverse events reported in a clinical trial.

72

Page 2: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

~.,

PATNO DRUGCODE CODE INT 9 2 604 1

12 2 305 1 21 2 604 1 42 1 604 1 43 1 604 1 48 2 604 1 64 2 604 2 64 2 605 2 64 2 605 1 71 2 301 1 78 2 604 2

108 2 305 1 108 2 604 1

Each patient is given a number (patno). The drugcode indicates which of the two contrast media the patient received. The adverse events are coded in accordance with a code list at NYCOMED. The intensity (int) of an event is graded as 1,2 or 3. PROC FORMAT decodes the data set.

PROC FORMAT; VALUE adverss

301 'Headache' 305 'Dizziness' 604 'Nausea' 605 'Vomiting'

VALUE intenfmt .='Not stated' 1='Mild' 2= 'Moderate , 3='Strong'

VALUE drugfmt 1=' Non-ionic' 2='Ionic' .='Not stated'

Any patient may report more than one adverse event, and a patient might report the same event several times. In this trial, patient no. 64 has reported both adverse event no. 604 and no. 605. Event no. 605 is reported twice - first with mild intensity and then with moderate intensity. The table we want is going to present each of the adverse

73

Page 3: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

.~ .

!

events, but each event will only be presented once per patient. If an event occurs more than once for the same patient the event of highest intensity is presented. A patient may have several different adverse events and for each event the highest intensity is tabulated. By using PRoe SORT the main data set is sorted and the LAST statement creates the data set which is to be used for tabulation:

PRoe SORT DATA=adverse; BY patno code int;

RUN;

DATA adverse; SET adverse; BY patno code; IF LAST.code THEN OUTPUT;

RUN;

Everyone involved in a clinical trial have their own opinion as to how the data should be presented; the goal for the Statistical Department is to present the data in a way that is suitable for the report. The results should be readable and understandable. After a lot of discussion about the layout of the table of adverse events, we agreed upon a table as shown in Table A.1. Kind of event and contrast medium given is presented in the left columns, whereas the intensities are in the right part of the table. For each adverse event the total number of patients who reported this event is also presented.

TABLE A.1

IKIND OF EVENT I GROUP I I

INTENSITY I NO. OF 1----------------­I PATIENTS I. Mild I Moderate

1------------------------------+--------+--------+--------I Headache I Ionic 11 11 I-----------~--+---------------+~~------+--------+--------

IDizziness I Ionic 21 21 1--------------+---------------+--------+--------+--------I Nausea I Non-ionic 21 21 I I

1---------------+--------+--------+--------I Ionic 61 41 2

1--------------+---------------+--------+--------+--------I Vomiting I Ionic 11 1

Table A.1 is produced by PRoe TABULATE. MISSTEXT=" has been used in this printout to mark no occurrences of an .event - we usually use MISSTEXT=' 0' in the tables. The program for this table is relatively simple:

74

Page 4: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

PROC TABULATE DATA=adverse MISSING; CLASS drugcode code int; KEYLABEL N

ALL 'NO. OF PATIENTS'

LABEL int 'INTENSITY'

TABLE code=' , * drugcode=' , , ALL * F=8.

int * N * F=8. / RTS=32 MISSTEXT=' ,

BOX='KIND OF EVENT GROUP' FORMAT drugcode drugfmt.

code adverss. int intenfmt.

TITLE 'TABLE RUN;

A.l , . ,

A problem arose when somebody asked whether it was possible to present all the three categories of intensity. For instance, it would be preferable to show that no patients reported an adverse event with a strong intensity.

This can easily be done by producing a new data set where new variables will represent each of the possible categories for the CLASS variable int (=intensity). In PROC TABULATE, three new numeric variables must be defined, and for these, SUM has to be used in the TABLE statement. There will now be one value for each of the possible intensities of an adverse event hence SUM must be used. N counts the zero-observations, but these will not contribute when using SUM.

First, a new data set has to be created. Then, some adjustments in PROC TABULATE will produce the new table:

DATA advel; SET adverse; IF int=l THEN intl=l;ELSE intl=O; IF int=2 THEN int2=1;ELSE int2=O; IF int=3 THEN int3=1;ELSE int3=O;

RUN;

75

Page 5: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

PROC TABULATE DATA=adve1 MISSING; CLASS drugcode code; VAR int1 int2 int3; KEYLABEL SUM

N ALL

LABEL int1 int2 int3

'NO. OF PATIENTS'

'Mild' 'Moderate' 'Strong'

TABLE code=' , * drugcode=' , ALL * F=8. (int1 int2 int3) * SUM * F=8.

/ RTS=32 MISSTEXT=' , BOX='KIND OF EVENT I GROUP' ;

FORMAT drugcode drugfmt.

TITLE RUN;

code adverss.; 'TABLE A.2

The new table is:

TABLE A.2

, . ,

IKIND OF EVENT I GROUP I NO. OF I I I PATIENTS I Mild I Moderate I Strong I I-----------~------------------+--------+--------+--------+--------1

I Headache I Ionic I 11 11 01 01 I-------------~+---------------+--------+--------+--------+--------1

I Dizziness I Ionic I 21 21 01 0 I 1--------------+---------------+--------+--------+--------+~-------I

INausea I Non-ionic I 21 21 01 01 I 1---------------+--------+--------+--------+--------1 I I Ionic I 61 41 21 01 1--------------+---------------+--------+--------+--------+--------1 I Vomiting I Ionic 1 11 01 11 01

We were still not satisfied - we wanted a heading 'INTENSITY' on top of these three new variables Mild, Moderate and Strong. This was a big problem for us. In the end we introduced a new CHARACTER-variable, intens, with value 'INTENSITY':

DATA adve1; SET adve1; intens = 'INTENSITY';

RUN;

76

Page 6: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

The following changes were done for the PROC TABULATE statements:

CLASS drugcode code intens;

TABLE code=' , * drugcode=' , , ALL * F=8.

intens=' , * (int1 int2 int3) * SUM*F=8. / RTS=32 MISSTEXT=' ,

BOX='KIND OF EVENT I GROUP' ;

The new table is now:

TABLE A.3

IKIND OF EVENT I GROUP I I INTENSITY I I I NO. OF 1--------------------------1 I I PATIENTS I Mild I Moderate I Strong I 1------------------------------+--------+--------+--------+--------1 I Headache I Ionic I 11 11 01 01 1--------------+---------------+--------+--------+--------+--------1 I Dizziness I Ionic I 21 21 01 01 I--------------+---------------+-----~--+--------+--------+--------1

I Nausea I Non-ionic I 21 21 01 01 I 1---------------+--------+--------+--------+--------1 I I Ionic I 61 41 21 0 I 1--------------+---------------+--------+--------+--------+--------1 I Vomiting I Ionic I 11 01 11 01

The next question is easy to imagine: Is it possible to show the number of patients in each group for each advese event? For instance, there are no patients who have reported headache in the 'Non-ionic' group. The option PRINTMISS is easy to use here and the table is perfect! We only have to add PRINTMISS to the TABLE statement.

TABLE code=' , * drugcode=' , ,ALL * F=8.

intens=' , * (int1 int2 int3) * SUM * F=8. / RTS=32 MISSTEXT=' , PRINTMISS

BOX='KIND OF EVENT I GROUP' ;

77

Page 7: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

This table contains correct information and presents the data as we wanted:

TABLE A.4

IKIND OF EVENT I GROUP I I INTENSITY r I I NO. OF �------------------------~-I I . I PATIENTS I Mild I Moderate I Strong I 1---.:.-----.,;.------ ----- ------- --+--------+------- -+--------+--------1 I Headache I Non-ionic I I I I I I I---------------+--------+---~----+--------+--------I I I Ionic I 11 11 0 I 0 I I--------------+--~------------+--------+--------+--------+--------1 I Dizziness I Non-ionic I I I I I I 1---------------+--------+--------+--------+--------1 I I Ionic I 21 21 01 01 1--------------+---------------+--------+--------+--------+--------1 I Nausea I Non-ionic I 21 21 01 01 I 1---------------+--------+--------+--------+--------1 I I Ionic I 61 41 21 0 I 1--------------+---------------+--------+--------+--------+--------1 I Vomiting I Non-ionic I I I I I I 1---------------+--------+--------+--------+--------1 I I Ionic I 11 0 I 11 0 I

This table was just perfect until sombody thought of relating the adverse events to the different body systems. It would be preferable to have a column on the left side of the table which related the events to the different body systems.

Adverse events that belong to the same body system, starts with the same digit. The variable system and its formats is easy to introduce:

PROC FORMAT;

VALUE bodysfmt 100-<200 200-<300 300-<400 400-<500 = 500-<600 600-<700 700-<800

Local and non-spesific reactions' Cardiovascular system'

Nervous system' Respiratory system'

, Muscular system', 'Gastrointest. system' 'Urogenital system'

(Note that the order of the FORMAT values can be affected by using blank spaces in front of the FORMAT text. We want the order to be as above, and one way of doing this is to add blank values in the text. Another way of handling this is to use ORDER=FORMATTED but when more levels are crossed, this does not always result in our wishes.)

78

: .

Page 8: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

DATA advel; SET adirel; system = code;

RUN;

ill the program, the following changes must be done:

CLASS drugcode system code intens;

TABLE system=' , * code=' , * drugcode=' , all * F=8. intens=' , * (inti irtt2 int3) * F=8.

/ RTS=50 MISSTEXT=' , PRINTMISS BOX='BODY SYSTEM KIND OF EVENT I GROUP'

FORMAT drugcode drugfmt. system bodysfmt. code adverss.;

It was easy to introduce a third level in the already existing table, but the resulting table was not quite as expected.

tABLE 1..6

IBODY SYStEM I KIIID OF EVEIIt I GROUP I I IlItEliSItY I I 1110. OF 1--------------------------1 I IPAtIElitS I Mild IModeratel Strong I 1------------------------.-----------------------.----~.--.--------. --------. -c------I III.rvoUB .yatem IHeadache fllon-ionic I I I I I I I 1----------------.--------.--------.--------. --------I I I I Ionic I 11 11 01 01 I 1------. --------. ----------~-----.--------.--------.--------.--------1 I IDizzin... Ilion-ionic, I I I , I I I I 1----------------.--------.---.----.--------.------c-I I I IIonic I 21 21 01 01 I 1---------------. ----------------.--------.--------.--------.--------1 I '1lIauaaa Ilion-ionic I I I I I I I 1----------------·--------·--------·--------·--------1 I I I Ionic I I I I I I 1-----------~ ---. ---------------~.-- ------.--------.t----.---.--------1 I IVomiting Ilion-ionic I I I I I I I 1----------------.--------.--------.--------.--------J I I 1I0nic I I I I I 1---------------. ---------.-----.-----~----------.---~ ----.--------. --------. --------1 IGaatrointBat: IHaadacha I/Ion-ionic I I I' I I ayatem I I----c-----------·--------·--------·--------·--------I

I I Ionic I I I I I 1---------------. ----------------.--------.--------.--------.--------1 IDizzin .. a Ilion-ionic I I I I I I 1----'------------.--------.----_COO, --------. --------I I I Ionic I I I I I 1---------------+ ----------------+------ --+--------+------- -+--------1 IlIau.... Illon-iol11c I 21 21 01 01 I ' I----------------.----c---.---.----. --------.--------1 I' IIonic I 61 41 21 01 1--------------.+ -------------- --:t'-"- ---- --+-- ---- --+-- ----;.."-+-- ------1 IVomiting Ilion-ionic I I I I I I 1----------------.--------.--------. --------·--------1 I 1I0nic I 11 01 1101

79

,."':." ; ,"

Page 9: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

£:

Here we have all the different adverse events repeated within each body system, and that was not our intention. PRINTMISS creates this combination of body system and adverse event. PRINTMISS counts the registered categories for each level of patient group, adverse event and system. If PRINTMISS is deleted, the table shows the correct data regarding system and adverse event:

tABLE A.6 ---------------------------------------------..;.-------..;.----------"":---------------------IBODY SYSTEM I XIND OF EVEIIT I GROUP I I INTENSITY I I IND. OF I~-------------------------I

I IPAtIENTSI Mild IModeratel Strong I 1----------------------------------------.--------+--------+--------+ ---- ----+ --------I INervone ByatOJR IHeadache lIonic I 11 11 01 01 I 1---------------+ ----------------+--------+--.------+-- ------+-- ------1 I IDizzin .. e lIonic. I 21 21 01 01 1------... ---- ----+ --~----------- -+-- --------------+---... ----+------~-+ ----:----+ --------I IGaatrointeBt. lliaqla. INon-ionic I 21 21 01 01 I Bystam I 1----------------+------~-+--------+ --------+--------1 I I lIonic I 61 41 21 01 I 1------------ ---+ ------------.---+------ --+------ --+-- ----- -+-- ------1 I IVomiting lIonic I 11 0 I 11 0 I

The table shows the correct number of patients, but the ntimber of patients from . both patient groups are not presented for each adverse event.

WHAT DO WE DO NOW?

Has PRoe TABULATE beaten us? Do we have to adjust to the limitations?

We regarded this as a challenge and tried to solve the problem in many ways. Finally we discovered a method of fooling PRoe TABULATE. This is an awkward and not a very elegant way of handling the problem. But we still have not had time to find a smarter way of doing it. This method has been working very well fot us and consists of the following trick:

Start with the main data set and make two new data sets which each contains the same variables, but the intensities are set to o. Each of the two new data sets contains One of the contrast media.

DATA trickl; SET advel; drugcode=l; intl=O; int2=O; int3=O;

RUN;

DATA trick2; SET advel; drugcode=2; intl=O; int2=O; int3=O;

RUN;

80

Page 10: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

Then the main data set is added to the two new ones. A new variable, 'antall', keeps track of the number of patients who have reported each adverse event.

DATA adve2; SET advei tricki trick2; antall=inti+int2+int3;

L:. RUN; r.

t:,.

The following printout shows the new data set:

f PATNO DRUGCODE CODE INTI INT2 INT3 ANTALL SYSTEM 1, 9 2 604 1 0 0 1 604

~ 12 2 305 1 0 0 1 305

r 21 2 604 1 0 0 1 604 42 1 604 1 0 0 1 604

~~ !$': 43 1 604 1 0 0 1 604

~ 48 2 604 1 0 0 1 604 ~.) 64 2 604 0 1 0 1 604

64 2 605 0 1 0 1 605 71 2 301 1 0 0 1 301 78 2 604 0 1 0 1 604 108 2 305 1 0 0 1 305 108 2 604 1 0 0 1 604 9 1 604 0 0 0 0 604

"

" 12 1 305 0 0 0 0 305 ~";' 21 1 604 0 0 0 0 604 42 1 604 0 0 0 0 604

.;,: 43 1 604 0 0 0 0 604 ~ ~ 48 1 604 0 0 0 0 604 ~:~ 64 1 604 0 0 0 0 604 ~~

" 64 1 605 0 0 0 0 605 , 71 1 301 0 0 0 0 301

~ 78 1 604 0 0 0 0 604 ~" 108 1 305 0 0 0 0 305 (::

108 1 604 0 0 0 0 604 f t 9 2 604 0 0 0 0 604

~.' 12 2 305 0 0 0 0 305 ~ 21 2 604 0 0 0 0 604 11 iI\ 42 2 604 0 0 0 0 604 R 43 2 604 0 0 0 0 604 Ii 48 2 604 0 0 0 0 604 ~.

~~ 64 2 604 0 0 0 0 604 ~

~, 64 i 605 0 0 0 0 605

f.: 71 2 301 0 0 0 0 301 I' 78 2 604 0 0 0 0 604 t 108 2 305 0 0 0 0 305 [

108 2 604 0 0 0 0 604 f

r When adding these two new data sets to the original, we do not increase the number ~'

~ of patients reporting Mild, Moderate or Strong intensity of the adverse event, as the

I counts (inti, int2 and int3) of the new observations all are zero. If there already exists a registration for one or more patients, this will not be affected by adding zeros.

The program for the final version of the adverse event table and the perfect one is: c , ;;

\ • \ ..

81

Page 11: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

PROC TABULATE. DATA=adve2 MISSING; CLASS drugcode system codeintens; VAR antall inti int2 int3; KEYLABEL SUM

LABEL int1 int2 int3 ant all

= 'Mild' 'Moderate'

= 'Strong' 'NO. OF PATIENTS'

KEYLABEL SUM

TABLE system=' , * code=' ,

* drugcode=' ,

antall * SUM * F=8. intens=' ,

* (int1 int2 int3) * SUM * F=8. / RTS=50

BOX= 'BODY SYSTEM I KIND OF EVENT I GROUP' FORMAT drugcode drugfmt.

system -bodysfmt. code adverss.

TITLE1 'TABLE A.7 NUMBER OF PATIENTS WITH - BODY SYSTEM - INTENSITIES.'; TITLE2 • TITLE3 ' TITLE4 '

. . , If an event is recorded more than once for the same'; patient, the highest recorded intensity is chosen.';

RUN;

TABLE 4.7 HUMBER OF PArIEHTS nTH ADVERsE EVERTS .. BODY SYSTEM - IIITEIISlrIES.

"If" an avent is recorded more than ODce for the aame patient. the highaat r."ord.d intentei ty ie choaen.

IBODYSYSTEN 1 XIND OFEVEHT 1 CROUP 1 1 IHTEHSITY 1 1 I 110. DF 1--------------------------� I IPUIEHTS I Mild IModerate I Strong I 1------------ -----. -----~--- -----"-----------+-"------+--------+------ --+------ --I· IHer-vou ayatam IH.adache Ilion-ionic I 01 01 01 01 I· I . 1-----------+--------+--------+--------+----·----1 I I IIonic I 11 11 0101 I . I-.. ~-.. - .. -,;------+-----------+--------+--------+--------+--------1 I IDizzin.... _Ilion-ionic I 01 01 01 01 I I 1-----------+--------+--------+--------+--------1 I I I Ionic I :II 21 01 01 1---------- ... - ---+---------------+--- ---..:- ---+----- ---+----- ---+------ --+--------I ICaatrointeat. Illaueaa Ilion-ionic I 21 21 01 01 lays tam I 1-----------+--------+--------+--------+--------I I I IIonic I 61 41 21 01 I 1---------------+-----------+--------+--------+--------+--.. -----1 I IVomiting Ilion-ionic I 01 or 01 01 I I I-----------+~-------+--- .. ----+----.. ---+--------I I I IIonic I 11 01 11 01

82

Page 12: PROC TABULATE, A Challenge? - sasCommunity TABULATE, A...PROC TABULATE, A Challenge? Tove Kristoffersen NYCOMED AS NYCOMED AS is a pharmaceutical company which mainly develops, produces

\

\

If at least one of the categories for a CLASS variable is missing in the data set, this creates problems when using PRoe TABULATE. When two variables are to be crossed, we need to do some tricks to show all the possible categories a variable can assume.

The PRINTMISS option· does not handle this in a proper way because it only uses the levels present in the data set and crosses all these levels with one another. To cope with this we have to introduce new variables and extra data sets.

The purpose of this presentation was to show some of our troubles with PROC TABULATE, and perhaps give SAS Institute a challenge?

I want a special format so that when this is used, all categories for the CLASS­variable will be presented- even though some of the levels are not present in the data set. For some variables we want to show all the possible values, and for some we only· want to present what was reported. In our pharmaceutical world we often want to present all the possible values for the intensity of an adverse event, but we do not want to present all the possible events that can be present in a code list for such events.

83