14.1.3
Summary of Exposure to Study Treatment
Made 2026-10-17 from simulated data.
ONCO-EX
Table 14.1.3
Summary of Exposure to Study Treatment
Safety Analysis Set
| Standard of Care (N=150) | Clinwrightinib 200 mg (N=150) | |
|---|---|---|
| Treatment duration (days) | ||
| n | 150 | 150 |
| Mean (SD) | 178.6 (115.63) | 233.5 (113.25) |
| Median | 185.5 | 260.0 |
| Min, Max | 39, 356 | 27, 336 |
| Number of administrations | ||
| n | 150 | 150 |
| Mean (SD) | 8.4 (5.31) | 231.0 (113.29) |
| Median | 9.0 | 260.0 |
| Min, Max | 2, 17 | 27, 336 |
| Cumulative dose | ||
| n | 150 | 150 |
| Mean (SD) | 620.6 (394.37) | 45147.3 (22272.08) |
| Median | 675.0 | 52000.0 |
| Min, Max | 150, 1275 | 4500, 67200 |
| Dose intensity | ||
| n | 150 | 150 |
| Mean (SD) | 24.7 (2.48) | 192.3 (15.83) |
| Median | 24.7 | 200.0 |
| Min, Max | 15, 30 | 109, 200 |
| Relative dose intensity (%) | ||
| n | 150 | 150 |
| Mean (SD) | 98.7 (9.92) | 96.1 (7.91) |
| Median | 98.7 | 100.0 |
| Min, Max | 61, 120 | 55, 100 |
| Relative dose intensity | ||
| < 80% | 5 (3.3%) | 10 (6.7%) |
| >= 80% | 145 (96.7%) | 140 (93.3%) |
| Subjects with a dose reduction | 15 (10.0%) | 30 (20.0%) |
| Subjects with a dose interruption | 25 (16.7%) | 42 (28.0%) |
Cumulative dose: Standard of Care mg/m2; Clinwrightinib 200 mg mg.
Dose intensity: Standard of Care mg/m2/week; Clinwrightinib 200 mg mg/day.
Dose intensity: cumulative dose / treatment duration; relative dose intensity: 100 x dose intensity / planned dose intensity.
Percentages are of the subjects in each column.
Source: ADEX.
Program: t-14-1-3.sas
Program t-14-1-3.sas
Version 1, written from Clinwright's patterns, 2026-10-17, checks passed.
/*==== 00-header ====*/
/*----------------------------------------------------------------------------
Output : Table 14.1.3 / Summary of Exposure to Study Treatment / Safety Analysis Set
Program : t-14-1-3.sas Reporting effort : CSR
ADaM : /work/adam (ADSL, ADLBC, ADLBH, ADVS, ADAE, ADEG, ADCM, ADMH, ADEX, ADRS, ADTR, ADTTE)
The header and the report step follow from the shell. The sections between
them make WORK.FINAL, one record per row of the table, in order:
_page the page (1 unless the output is paged); _pagelbl its heading or empty
_ord the row's order; _indent the label's indentation (0 = flush left)
_rowid the uuid of the shell row it shows (WORK._SHELL); one shell row may
have several (a category per value); a blank row's is blank-<n>
_kind label | stat | blank
rowlabel the row's label, as text
col1 Standard of Care|(N=xx)
col2 Clinwrightinib 200 mg|(N=xx)
and set the big N of the column headers:
&_bign1 Standard of Care|(N=xx)
&_bign2 Clinwrightinib 200 mg|(N=xx)
/work/_lib/clinwright.sas has %ls_bign, %ls_count, %ls_stats, %ls_npct, %ls_num.
----------------------------------------------------------------------------*/
libname adam "/work/adam" access=readonly;
%include "/work/_lib/clinwright.sas";
%ls_setup;
/* The shell's rows, in order, with each column's value pattern (_xx1-_xx2). */
data work._shell;
length _page 8 _pagelbl $200 _ord 8 _indent 8 _rowid $36 _kind $5 _var $32 rowlabel $200 _xx1 $40 _xx2 $40;
_page = 1; _pagelbl = '';
_ord=1; _indent=0; _rowid='1b2c9cb8-daae-479f-8518-4dd9365ab140'; _kind='label'; _var='PARAMCD'; rowlabel='Treatment duration (days)'; _xx1=''; _xx2=''; output;
_ord=2; _indent=1; _rowid='6499fea1-6ff7-49e4-8d05-8844914b34de'; _kind='stat'; _var='AVAL'; rowlabel='n'; _xx1='xx'; _xx2='xx'; output;
_ord=3; _indent=1; _rowid='ecbe8758-1ffe-4e54-82d5-2f4e63ac5529'; _kind='stat'; _var='AVAL'; rowlabel='Mean (SD)'; _xx1='xx.x (xx.xx)'; _xx2='xx.x (xx.xx)'; output;
_ord=4; _indent=1; _rowid='cbc8e446-0931-4b14-a283-e485a989bb2c'; _kind='stat'; _var='AVAL'; rowlabel='Median'; _xx1='xx.x'; _xx2='xx.x'; output;
_ord=5; _indent=1; _rowid='af054a13-2546-4803-b1e1-ac0d3b649592'; _kind='stat'; _var='AVAL'; rowlabel='Min, Max'; _xx1='xx, xx'; _xx2='xx, xx'; output;
_ord=6; _indent=0; _rowid='blank-6'; _kind='blank'; _var=''; rowlabel=''; _xx1=''; _xx2=''; output;
_ord=7; _indent=0; _rowid='a784cca5-40d7-4958-854d-5156ce850d32'; _kind='label'; _var='PARAMCD'; rowlabel='Number of administrations'; _xx1=''; _xx2=''; output;
_ord=8; _indent=1; _rowid='16797ef0-347a-4235-a80f-d3e4a53fcf5e'; _kind='stat'; _var='AVAL'; rowlabel='n'; _xx1='xx'; _xx2='xx'; output;
_ord=9; _indent=1; _rowid='78c5bc36-3e46-4b36-9e1e-b6a2c5e28103'; _kind='stat'; _var='AVAL'; rowlabel='Mean (SD)'; _xx1='xx.x (xx.xx)'; _xx2='xx.x (xx.xx)'; output;
_ord=10; _indent=1; _rowid='3134c782-ed1b-4afa-9c97-53248cc801ad'; _kind='stat'; _var='AVAL'; rowlabel='Median'; _xx1='xx.x'; _xx2='xx.x'; output;
_ord=11; _indent=1; _rowid='c6a2405c-c4fe-4070-82e9-8095f9955a1a'; _kind='stat'; _var='AVAL'; rowlabel='Min, Max'; _xx1='xx, xx'; _xx2='xx, xx'; output;
_ord=12; _indent=0; _rowid='blank-12'; _kind='blank'; _var=''; rowlabel=''; _xx1=''; _xx2=''; output;
_ord=13; _indent=0; _rowid='5d28a750-ce72-40fa-826e-bb818f10f715'; _kind='label'; _var='PARAMCD'; rowlabel='Cumulative dose'; _xx1=''; _xx2=''; output;
_ord=14; _indent=1; _rowid='2393fe30-499c-4f65-adf9-ab5a5a9fe18c'; _kind='stat'; _var='AVAL'; rowlabel='n'; _xx1='xx'; _xx2='xx'; output;
_ord=15; _indent=1; _rowid='9527117b-e466-484c-9a75-7e7b827c21dd'; _kind='stat'; _var='AVAL'; rowlabel='Mean (SD)'; _xx1='xx.x (xx.xx)'; _xx2='xx.x (xx.xx)'; output;
_ord=16; _indent=1; _rowid='73798b43-2fbf-4a9f-8616-70f65d35a157'; _kind='stat'; _var='AVAL'; rowlabel='Median'; _xx1='xx.x'; _xx2='xx.x'; output;
_ord=17; _indent=1; _rowid='76c6dd76-2939-4b53-afd4-ac41d01e5213'; _kind='stat'; _var='AVAL'; rowlabel='Min, Max'; _xx1='xx, xx'; _xx2='xx, xx'; output;
_ord=18; _indent=0; _rowid='blank-18'; _kind='blank'; _var=''; rowlabel=''; _xx1=''; _xx2=''; output;
_ord=19; _indent=0; _rowid='6d09892a-f0a0-401d-b48f-f41bf3bdd270'; _kind='label'; _var='PARAMCD'; rowlabel='Dose intensity'; _xx1=''; _xx2=''; output;
_ord=20; _indent=1; _rowid='d88eefaa-699d-4eba-989d-72a812faf2ce'; _kind='stat'; _var='AVAL'; rowlabel='n'; _xx1='xx'; _xx2='xx'; output;
_ord=21; _indent=1; _rowid='1c693f33-a856-478c-bd4e-c93167404611'; _kind='stat'; _var='AVAL'; rowlabel='Mean (SD)'; _xx1='xx.x (xx.xx)'; _xx2='xx.x (xx.xx)'; output;
_ord=22; _indent=1; _rowid='97529f00-5996-4752-a108-058e0a8abd1b'; _kind='stat'; _var='AVAL'; rowlabel='Median'; _xx1='xx.x'; _xx2='xx.x'; output;
_ord=23; _indent=1; _rowid='14c817c6-bfb8-4d0f-bcac-b5266bee7d82'; _kind='stat'; _var='AVAL'; rowlabel='Min, Max'; _xx1='xx, xx'; _xx2='xx, xx'; output;
_ord=24; _indent=0; _rowid='blank-24'; _kind='blank'; _var=''; rowlabel=''; _xx1=''; _xx2=''; output;
_ord=25; _indent=0; _rowid='acd002c9-a0ed-4410-a79b-e891fcccecf4'; _kind='label'; _var='PARAMCD'; rowlabel='Relative dose intensity (%)'; _xx1=''; _xx2=''; output;
_ord=26; _indent=1; _rowid='ea8b5d5c-c53a-4317-a912-88ddaaeafcd5'; _kind='stat'; _var='AVAL'; rowlabel='n'; _xx1='xx'; _xx2='xx'; output;
_ord=27; _indent=1; _rowid='dc529fd0-54b6-46a3-8b5c-09c7eb216d35'; _kind='stat'; _var='AVAL'; rowlabel='Mean (SD)'; _xx1='xx.x (xx.xx)'; _xx2='xx.x (xx.xx)'; output;
_ord=28; _indent=1; _rowid='f40fd410-0fdf-4c29-8b58-9ef6f15bef65'; _kind='stat'; _var='AVAL'; rowlabel='Median'; _xx1='xx.x'; _xx2='xx.x'; output;
_ord=29; _indent=1; _rowid='ba1c42e0-1177-46ab-ad98-6b2ddfa23158'; _kind='stat'; _var='AVAL'; rowlabel='Min, Max'; _xx1='xx, xx'; _xx2='xx, xx'; output;
_ord=30; _indent=0; _rowid='blank-30'; _kind='blank'; _var=''; rowlabel=''; _xx1=''; _xx2=''; output;
_ord=31; _indent=0; _rowid='63b8c0cd-63a9-4942-bb93-3d35e799c0e0'; _kind='label'; _var=''; rowlabel='Relative dose intensity'; _xx1=''; _xx2=''; output;
_ord=32; _indent=1; _rowid='d62217ab-0916-4349-9660-431720f64a87'; _kind='stat'; _var=''; rowlabel='< 80%'; _xx1='xx (xx.x%)'; _xx2='xx (xx.x%)'; output;
_ord=33; _indent=1; _rowid='b4f63358-c147-4c7d-b8c8-cbe336155156'; _kind='stat'; _var=''; rowlabel='>= 80%'; _xx1='xx (xx.x%)'; _xx2='xx (xx.x%)'; output;
_ord=34; _indent=0; _rowid='blank-34'; _kind='blank'; _var=''; rowlabel=''; _xx1=''; _xx2=''; output;
_ord=35; _indent=0; _rowid='e719dfba-450f-4fbf-8eed-573c30a8eeae'; _kind='stat'; _var=''; rowlabel='Subjects with a dose reduction'; _xx1='xx (xx.x%)'; _xx2='xx (xx.x%)'; output;
_ord=36; _indent=0; _rowid='blank-36'; _kind='blank'; _var=''; rowlabel=''; _xx1=''; _xx2=''; output;
_ord=37; _indent=0; _rowid='5d29f7cf-f699-44a9-8d47-7981e2162ef2'; _kind='stat'; _var=''; rowlabel='Subjects with a dose interruption'; _xx1='xx (xx.x%)'; _xx2='xx (xx.x%)'; output;
run;
/*==== 10-data ====*/
/* Made from the output's analysis: the records of ADEX of the subjects of ADSL with SAFFL = 'Y', by TRT01A. */
/* The population's subjects, in each column they count in. */
data work._popc;
set adam.adsl(where=(saffl = 'Y'));
if trt01a in ('Standard of Care') then do; _col = 1; output; end;
if trt01a in ('Clinwrightinib 200 mg') then do; _col = 2; output; end;
keep usubjid _col;
run;
data work._pop1; set adam.adsl(where=(saffl = 'Y')); keep usubjid trt01a; run;
proc sort data=work._pop1; by usubjid; run;
/* The records of ADEX, of the population's subjects, in each column. */
proc sort data=adam.adex(keep=usubjid saffl trt01a paramcd aval) out=work._rec; by usubjid; run;
data work._an;
merge work._rec(in=_r drop=trt01a) work._pop1(in=_p);
by usubjid;
if _r and _p;
if trt01a in ('Standard of Care') then do; _col = 1; output; end;
if trt01a in ('Clinwrightinib 200 mg') then do; _col = 2; output; end;
run;
data work._cols; do _col = 1 to 2; output; end; run;
%ls_bign(data=work._popc, trt=_col, values=1|2|1|2, names=_lsn1 _lsn2 _bign1 _bign2);
data work._as1; set work._an; where paramcd = 'TRTDURD'; run;
/* Subjects and records per column. */
proc sort data=work._as1(keep=usubjid _col) out=work._u; by _col usubjid; run;
data work._c;
set work._u;
by _col usubjid;
retain _n _e;
if first._col then do; _n = 0; _e = 0; end;
_e = _e + 1;
if first.usubjid then _n = _n + 1;
if last._col then output;
keep _col _n _e;
run;
proc transpose data=work._c out=work._tn(drop=_name_) prefix=_n; id _col; var _n; run;
proc transpose data=work._c out=work._te(drop=_name_) prefix=_e; id _col; var _e; run;
data work._z; _z = 1; run;
data work._g0;
merge work._z work._tn work._te;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
do _i = 1 to 2; _nn{_i} = sum(_nn{_i}, 0); _ee{_i} = sum(_ee{_i}, 0); end;
_tot = sum(of _n1-_n2);
drop _i _z;
run;
data work._ar; set work._an; where paramcd = 'TRTDURD'; run;
/* n: n of AVAL. */
data work._f; set work._g0; do _col = 1 to 2; output; end; run;
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k1;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '6499fea1-6ff7-49e4-8d05-8844914b34de';
_page = 1;
_pagelbl = '';
_k0 = 2;
_label = '';
_v = strip(ifc(missing(sum(_vnm, 0)), '-', %ls_num(sum(_vnm, 0), 0)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'TRTDURD'; run;
/* Mean (SD): mean_sd of AVAL. */
data work._f; set work._g0; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k2;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'ecbe8758-1ffe-4e54-82d5-2f4e63ac5529';
_page = 1;
_pagelbl = '';
_k0 = 3;
_label = '';
_v = strip(ifc(missing(_vmean), '-', %ls_num(_vmean, 1))) || ' (' || strip(ifc(missing(_vsd), '-', %ls_num(_vsd, 2))) || ')';
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'TRTDURD'; run;
/* Median: median of AVAL. */
data work._f; set work._g0; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k3;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'cbc8e446-0931-4b14-a283-e485a989bb2c';
_page = 1;
_pagelbl = '';
_k0 = 4;
_label = '';
_v = strip(ifc(missing(_vmedian), '-', %ls_num(_vmedian, 1)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'TRTDURD'; run;
/* Min, Max: min_max of AVAL. */
data work._f; set work._g0; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k4;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'af054a13-2546-4803-b1e1-ac0d3b649592';
_page = 1;
_pagelbl = '';
_k0 = 5;
_label = '';
_v = strip(ifc(missing(_vmin), '-', %ls_num(_vmin, 0))) || ', ' || strip(ifc(missing(_vmax), '-', %ls_num(_vmax, 0)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._as2; set work._an; where paramcd = 'NADMIN'; run;
/* Subjects and records per column. */
proc sort data=work._as2(keep=usubjid _col) out=work._u; by _col usubjid; run;
data work._c;
set work._u;
by _col usubjid;
retain _n _e;
if first._col then do; _n = 0; _e = 0; end;
_e = _e + 1;
if first.usubjid then _n = _n + 1;
if last._col then output;
keep _col _n _e;
run;
proc transpose data=work._c out=work._tn(drop=_name_) prefix=_n; id _col; var _n; run;
proc transpose data=work._c out=work._te(drop=_name_) prefix=_e; id _col; var _e; run;
data work._z; _z = 1; run;
data work._g1;
merge work._z work._tn work._te;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
do _i = 1 to 2; _nn{_i} = sum(_nn{_i}, 0); _ee{_i} = sum(_ee{_i}, 0); end;
_tot = sum(of _n1-_n2);
drop _i _z;
run;
data work._ar; set work._an; where paramcd = 'NADMIN'; run;
/* n: n of AVAL. */
data work._f; set work._g1; do _col = 1 to 2; output; end; run;
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k5;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '16797ef0-347a-4235-a80f-d3e4a53fcf5e';
_page = 1;
_pagelbl = '';
_k0 = 8;
_label = '';
_v = strip(ifc(missing(sum(_vnm, 0)), '-', %ls_num(sum(_vnm, 0), 0)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'NADMIN'; run;
/* Mean (SD): mean_sd of AVAL. */
data work._f; set work._g1; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k6;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '78c5bc36-3e46-4b36-9e1e-b6a2c5e28103';
_page = 1;
_pagelbl = '';
_k0 = 9;
_label = '';
_v = strip(ifc(missing(_vmean), '-', %ls_num(_vmean, 1))) || ' (' || strip(ifc(missing(_vsd), '-', %ls_num(_vsd, 2))) || ')';
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'NADMIN'; run;
/* Median: median of AVAL. */
data work._f; set work._g1; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k7;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '3134c782-ed1b-4afa-9c97-53248cc801ad';
_page = 1;
_pagelbl = '';
_k0 = 10;
_label = '';
_v = strip(ifc(missing(_vmedian), '-', %ls_num(_vmedian, 1)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'NADMIN'; run;
/* Min, Max: min_max of AVAL. */
data work._f; set work._g1; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k8;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'c6a2405c-c4fe-4070-82e9-8095f9955a1a';
_page = 1;
_pagelbl = '';
_k0 = 11;
_label = '';
_v = strip(ifc(missing(_vmin), '-', %ls_num(_vmin, 0))) || ', ' || strip(ifc(missing(_vmax), '-', %ls_num(_vmax, 0)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._as3; set work._an; where paramcd = 'CUMDOSE'; run;
/* Subjects and records per column. */
proc sort data=work._as3(keep=usubjid _col) out=work._u; by _col usubjid; run;
data work._c;
set work._u;
by _col usubjid;
retain _n _e;
if first._col then do; _n = 0; _e = 0; end;
_e = _e + 1;
if first.usubjid then _n = _n + 1;
if last._col then output;
keep _col _n _e;
run;
proc transpose data=work._c out=work._tn(drop=_name_) prefix=_n; id _col; var _n; run;
proc transpose data=work._c out=work._te(drop=_name_) prefix=_e; id _col; var _e; run;
data work._z; _z = 1; run;
data work._g2;
merge work._z work._tn work._te;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
do _i = 1 to 2; _nn{_i} = sum(_nn{_i}, 0); _ee{_i} = sum(_ee{_i}, 0); end;
_tot = sum(of _n1-_n2);
drop _i _z;
run;
data work._ar; set work._an; where paramcd = 'CUMDOSE'; run;
/* n: n of AVAL. */
data work._f; set work._g2; do _col = 1 to 2; output; end; run;
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k9;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '2393fe30-499c-4f65-adf9-ab5a5a9fe18c';
_page = 1;
_pagelbl = '';
_k0 = 14;
_label = '';
_v = strip(ifc(missing(sum(_vnm, 0)), '-', %ls_num(sum(_vnm, 0), 0)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'CUMDOSE'; run;
/* Mean (SD): mean_sd of AVAL. */
data work._f; set work._g2; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k10;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '9527117b-e466-484c-9a75-7e7b827c21dd';
_page = 1;
_pagelbl = '';
_k0 = 15;
_label = '';
_v = strip(ifc(missing(_vmean), '-', %ls_num(_vmean, 1))) || ' (' || strip(ifc(missing(_vsd), '-', %ls_num(_vsd, 2))) || ')';
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'CUMDOSE'; run;
/* Median: median of AVAL. */
data work._f; set work._g2; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k11;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '73798b43-2fbf-4a9f-8616-70f65d35a157';
_page = 1;
_pagelbl = '';
_k0 = 16;
_label = '';
_v = strip(ifc(missing(_vmedian), '-', %ls_num(_vmedian, 1)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'CUMDOSE'; run;
/* Min, Max: min_max of AVAL. */
data work._f; set work._g2; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k12;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '76c6dd76-2939-4b53-afd4-ac41d01e5213';
_page = 1;
_pagelbl = '';
_k0 = 17;
_label = '';
_v = strip(ifc(missing(_vmin), '-', %ls_num(_vmin, 0))) || ', ' || strip(ifc(missing(_vmax), '-', %ls_num(_vmax, 0)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._as4; set work._an; where paramcd = 'DOSEINT'; run;
/* Subjects and records per column. */
proc sort data=work._as4(keep=usubjid _col) out=work._u; by _col usubjid; run;
data work._c;
set work._u;
by _col usubjid;
retain _n _e;
if first._col then do; _n = 0; _e = 0; end;
_e = _e + 1;
if first.usubjid then _n = _n + 1;
if last._col then output;
keep _col _n _e;
run;
proc transpose data=work._c out=work._tn(drop=_name_) prefix=_n; id _col; var _n; run;
proc transpose data=work._c out=work._te(drop=_name_) prefix=_e; id _col; var _e; run;
data work._z; _z = 1; run;
data work._g3;
merge work._z work._tn work._te;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
do _i = 1 to 2; _nn{_i} = sum(_nn{_i}, 0); _ee{_i} = sum(_ee{_i}, 0); end;
_tot = sum(of _n1-_n2);
drop _i _z;
run;
data work._ar; set work._an; where paramcd = 'DOSEINT'; run;
/* n: n of AVAL. */
data work._f; set work._g3; do _col = 1 to 2; output; end; run;
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k13;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'd88eefaa-699d-4eba-989d-72a812faf2ce';
_page = 1;
_pagelbl = '';
_k0 = 20;
_label = '';
_v = strip(ifc(missing(sum(_vnm, 0)), '-', %ls_num(sum(_vnm, 0), 0)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'DOSEINT'; run;
/* Mean (SD): mean_sd of AVAL. */
data work._f; set work._g3; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k14;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '1c693f33-a856-478c-bd4e-c93167404611';
_page = 1;
_pagelbl = '';
_k0 = 21;
_label = '';
_v = strip(ifc(missing(_vmean), '-', %ls_num(_vmean, 1))) || ' (' || strip(ifc(missing(_vsd), '-', %ls_num(_vsd, 2))) || ')';
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'DOSEINT'; run;
/* Median: median of AVAL. */
data work._f; set work._g3; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k15;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '97529f00-5996-4752-a108-058e0a8abd1b';
_page = 1;
_pagelbl = '';
_k0 = 22;
_label = '';
_v = strip(ifc(missing(_vmedian), '-', %ls_num(_vmedian, 1)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'DOSEINT'; run;
/* Min, Max: min_max of AVAL. */
data work._f; set work._g3; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k16;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '14c817c6-bfb8-4d0f-bcac-b5266bee7d82';
_page = 1;
_pagelbl = '';
_k0 = 23;
_label = '';
_v = strip(ifc(missing(_vmin), '-', %ls_num(_vmin, 0))) || ', ' || strip(ifc(missing(_vmax), '-', %ls_num(_vmax, 0)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._as5; set work._an; where paramcd = 'RDI'; run;
/* Subjects and records per column. */
proc sort data=work._as5(keep=usubjid _col) out=work._u; by _col usubjid; run;
data work._c;
set work._u;
by _col usubjid;
retain _n _e;
if first._col then do; _n = 0; _e = 0; end;
_e = _e + 1;
if first.usubjid then _n = _n + 1;
if last._col then output;
keep _col _n _e;
run;
proc transpose data=work._c out=work._tn(drop=_name_) prefix=_n; id _col; var _n; run;
proc transpose data=work._c out=work._te(drop=_name_) prefix=_e; id _col; var _e; run;
data work._z; _z = 1; run;
data work._g4;
merge work._z work._tn work._te;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
do _i = 1 to 2; _nn{_i} = sum(_nn{_i}, 0); _ee{_i} = sum(_ee{_i}, 0); end;
_tot = sum(of _n1-_n2);
drop _i _z;
run;
data work._ar; set work._an; where paramcd = 'RDI'; run;
/* n: n of AVAL. */
data work._f; set work._g4; do _col = 1 to 2; output; end; run;
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k17;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'ea8b5d5c-c53a-4317-a912-88ddaaeafcd5';
_page = 1;
_pagelbl = '';
_k0 = 26;
_label = '';
_v = strip(ifc(missing(sum(_vnm, 0)), '-', %ls_num(sum(_vnm, 0), 0)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'RDI'; run;
/* Mean (SD): mean_sd of AVAL. */
data work._f; set work._g4; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k18;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'dc529fd0-54b6-46a3-8b5c-09c7eb216d35';
_page = 1;
_pagelbl = '';
_k0 = 27;
_label = '';
_v = strip(ifc(missing(_vmean), '-', %ls_num(_vmean, 1))) || ' (' || strip(ifc(missing(_vsd), '-', %ls_num(_vsd, 2))) || ')';
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'RDI'; run;
/* Median: median of AVAL. */
data work._f; set work._g4; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k19;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'f40fd410-0fdf-4c29-8b58-9ef6f15bef65';
_page = 1;
_pagelbl = '';
_k0 = 28;
_label = '';
_v = strip(ifc(missing(_vmedian), '-', %ls_num(_vmedian, 1)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._ar; set work._an; where paramcd = 'RDI'; run;
/* Min, Max: min_max of AVAL. */
data work._f; set work._g4; do _col = 1 to 2; output; end; run;
%ls_stats(data=work._ar, out=work._st, var=aval, trt=_col, keepraw=Y);
proc sort data=work._ar(keep=_col aval) out=work._m; by _col; run;
data work._m;
set work._m;
by _col;
retain _vmiss _vnm;
if first._col then do; _vmiss = 0; _vnm = 0; end;
if missing(aval) then _vmiss = _vmiss + 1; else _vnm = _vnm + 1;
if last._col then output;
keep _col _vmiss _vnm;
run;
data work._k20;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._st work._m;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'ba1c42e0-1177-46ab-ad98-6b2ddfa23158';
_page = 1;
_pagelbl = '';
_k0 = 29;
_label = '';
_v = strip(ifc(missing(_vmin), '-', %ls_num(_vmin, 0))) || ', ' || strip(ifc(missing(_vmax), '-', %ls_num(_vmax, 0)));
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
/* Subjects and records per column. */
proc sort data=work._an(keep=usubjid _col) out=work._u; by _col usubjid; run;
data work._c;
set work._u;
by _col usubjid;
retain _n _e;
if first._col then do; _n = 0; _e = 0; end;
_e = _e + 1;
if first.usubjid then _n = _n + 1;
if last._col then output;
keep _col _n _e;
run;
proc transpose data=work._c out=work._tn(drop=_name_) prefix=_n; id _col; var _n; run;
proc transpose data=work._c out=work._te(drop=_name_) prefix=_e; id _col; var _e; run;
data work._z; _z = 1; run;
data work._g5;
merge work._z work._tn work._te;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
do _i = 1 to 2; _nn{_i} = sum(_nn{_i}, 0); _ee{_i} = sum(_ee{_i}, 0); end;
_tot = sum(of _n1-_n2);
drop _i _z;
run;
/* < 80%: npct where PARAMCD = 'RDI' and not missing(AVAL) and AVAL < 80. */
data work._f; set work._g5; do _col = 1 to 2; output; end; run;
proc sort data=work._an(keep=usubjid _col paramcd aval where=(PARAMCD = 'RDI' and not missing(AVAL) and AVAL < 80)) out=work._v; by _col usubjid; run;
data work._v;
set work._v;
by _col usubjid;
retain _vn _ve;
if first._col then do; _vn = 0; _ve = 0; end;
_ve = _ve + 1;
if first.usubjid then _vn = _vn + 1;
if last._col then output;
keep _col _vn _ve;
run;
proc sort data=work._an(keep=usubjid _col paramcd aval where=(1)) out=work._d; by _col usubjid; run;
data work._d;
set work._d;
by _col usubjid;
retain _dn _de;
if first._col then do; _dn = 0; _de = 0; end;
_de = _de + 1;
if first.usubjid then _dn = _dn + 1;
if last._col then output;
keep _col _dn _de;
run;
data work._k21;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._v work._d;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'd62217ab-0916-4349-9660-431720f64a87';
_page = 1;
_pagelbl = '';
_k0 = 32;
_label = '';
_v = strip(ifc(missing(sum(_vn, 0)), '-', %ls_num(sum(_vn, 0), 0))) || ' (' || strip(ifc(missing(ifn(input(symget(cats('_lsn', _col)), 8.) > 0, 100 * sum(_vn, 0) / max(input(symget(cats('_lsn', _col)), 8.), 1), .)), '-', %ls_num(ifn(input(symget(cats('_lsn', _col)), 8.) > 0, 100 * sum(_vn, 0) / max(input(symget(cats('_lsn', _col)), 8.), 1), .), 1))) || '%)';
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
/* >= 80%: npct where PARAMCD = 'RDI' and AVAL >= 80. */
data work._f; set work._g5; do _col = 1 to 2; output; end; run;
proc sort data=work._an(keep=usubjid _col paramcd aval where=(PARAMCD = 'RDI' and AVAL >= 80)) out=work._v; by _col usubjid; run;
data work._v;
set work._v;
by _col usubjid;
retain _vn _ve;
if first._col then do; _vn = 0; _ve = 0; end;
_ve = _ve + 1;
if first.usubjid then _vn = _vn + 1;
if last._col then output;
keep _col _vn _ve;
run;
proc sort data=work._an(keep=usubjid _col paramcd aval where=(1)) out=work._d; by _col usubjid; run;
data work._d;
set work._d;
by _col usubjid;
retain _dn _de;
if first._col then do; _dn = 0; _de = 0; end;
_de = _de + 1;
if first.usubjid then _dn = _dn + 1;
if last._col then output;
keep _col _dn _de;
run;
data work._k22;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._v work._d;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'b4f63358-c147-4c7d-b8c8-cbe336155156';
_page = 1;
_pagelbl = '';
_k0 = 33;
_label = '';
_v = strip(ifc(missing(sum(_vn, 0)), '-', %ls_num(sum(_vn, 0), 0))) || ' (' || strip(ifc(missing(ifn(input(symget(cats('_lsn', _col)), 8.) > 0, 100 * sum(_vn, 0) / max(input(symget(cats('_lsn', _col)), 8.), 1), .)), '-', %ls_num(ifn(input(symget(cats('_lsn', _col)), 8.) > 0, 100 * sum(_vn, 0) / max(input(symget(cats('_lsn', _col)), 8.), 1), .), 1))) || '%)';
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
/* Subjects with a dose reduction: npct where PARAMCD = 'NDOSRED' and AVAL > 0. */
data work._f; set work._g5; do _col = 1 to 2; output; end; run;
proc sort data=work._an(keep=usubjid _col paramcd aval where=(PARAMCD = 'NDOSRED' and AVAL > 0)) out=work._v; by _col usubjid; run;
data work._v;
set work._v;
by _col usubjid;
retain _vn _ve;
if first._col then do; _vn = 0; _ve = 0; end;
_ve = _ve + 1;
if first.usubjid then _vn = _vn + 1;
if last._col then output;
keep _col _vn _ve;
run;
proc sort data=work._an(keep=usubjid _col paramcd aval where=(1)) out=work._d; by _col usubjid; run;
data work._d;
set work._d;
by _col usubjid;
retain _dn _de;
if first._col then do; _dn = 0; _de = 0; end;
_de = _de + 1;
if first.usubjid then _dn = _dn + 1;
if last._col then output;
keep _col _dn _de;
run;
data work._k23;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._v work._d;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = 'e719dfba-450f-4fbf-8eed-573c30a8eeae';
_page = 1;
_pagelbl = '';
_k0 = 35;
_label = '';
_v = strip(ifc(missing(sum(_vn, 0)), '-', %ls_num(sum(_vn, 0), 0))) || ' (' || strip(ifc(missing(ifn(input(symget(cats('_lsn', _col)), 8.) > 0, 100 * sum(_vn, 0) / max(input(symget(cats('_lsn', _col)), 8.), 1), .)), '-', %ls_num(ifn(input(symget(cats('_lsn', _col)), 8.) > 0, 100 * sum(_vn, 0) / max(input(symget(cats('_lsn', _col)), 8.), 1), .), 1))) || '%)';
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
/* Subjects with a dose interruption: npct where PARAMCD = 'NDOSINT' and AVAL > 0. */
data work._f; set work._g5; do _col = 1 to 2; output; end; run;
proc sort data=work._an(keep=usubjid _col paramcd aval where=(PARAMCD = 'NDOSINT' and AVAL > 0)) out=work._v; by _col usubjid; run;
data work._v;
set work._v;
by _col usubjid;
retain _vn _ve;
if first._col then do; _vn = 0; _ve = 0; end;
_ve = _ve + 1;
if first.usubjid then _vn = _vn + 1;
if last._col then output;
keep _col _vn _ve;
run;
proc sort data=work._an(keep=usubjid _col paramcd aval where=(1)) out=work._d; by _col usubjid; run;
data work._d;
set work._d;
by _col usubjid;
retain _dn _de;
if first._col then do; _dn = 0; _de = 0; end;
_de = _de + 1;
if first.usubjid then _dn = _dn + 1;
if last._col then output;
keep _col _dn _de;
run;
data work._k24;
length _rowid $36 _label _pagelbl $200 _v $200;
merge work._f(in=_in) work._v work._d;
by _col;
if _in;
array _nn{2} _n1-_n2;
array _ee{2} _e1-_e2;
_rowid = '5d29f7cf-f699-44a9-8d47-7981e2162ef2';
_page = 1;
_pagelbl = '';
_k0 = 37;
_label = '';
_v = strip(ifc(missing(sum(_vn, 0)), '-', %ls_num(sum(_vn, 0), 0))) || ' (' || strip(ifc(missing(ifn(input(symget(cats('_lsn', _col)), 8.) > 0, 100 * sum(_vn, 0) / max(input(symget(cats('_lsn', _col)), 8.), 1), .)), '-', %ls_num(ifn(input(symget(cats('_lsn', _col)), 8.) > 0, 100 * sum(_vn, 0) / max(input(symget(cats('_lsn', _col)), 8.), 1), .), 1))) || '%)';
keep _rowid _label _page _pagelbl _k0 _col _v;
run;
data work._cells; set work._k1 work._k2 work._k3 work._k4 work._k5 work._k6 work._k7 work._k8 work._k9 work._k10 work._k11 work._k12 work._k13 work._k14 work._k15 work._k16 work._k17 work._k18 work._k19 work._k20 work._k21 work._k22 work._k23 work._k24; run;
proc sort data=work._cells; by _page _pagelbl _k0 _rowid _label _col; run;
proc transpose data=work._cells out=work._wide(drop=_name_) prefix=col;
by _page _pagelbl _k0 _rowid _label;
id _col;
var _v;
run;
proc sort data=work._wide; by _rowid; run;
proc sort data=work._shell(drop=_page _pagelbl) out=work._rows; by _rowid; run;
data work._inst;
merge work._wide(in=_w) work._rows(in=_s);
by _rowid;
if _w and _s;
if _label ne '' then rowlabel = _label;
run;
data work._fixed;
set work._shell;
if _rowid not in ('6499fea1-6ff7-49e4-8d05-8844914b34de' 'ecbe8758-1ffe-4e54-82d5-2f4e63ac5529' 'cbc8e446-0931-4b14-a283-e485a989bb2c' 'af054a13-2546-4803-b1e1-ac0d3b649592' '16797ef0-347a-4235-a80f-d3e4a53fcf5e' '78c5bc36-3e46-4b36-9e1e-b6a2c5e28103' '3134c782-ed1b-4afa-9c97-53248cc801ad' 'c6a2405c-c4fe-4070-82e9-8095f9955a1a' '2393fe30-499c-4f65-adf9-ab5a5a9fe18c' '9527117b-e466-484c-9a75-7e7b827c21dd' '73798b43-2fbf-4a9f-8616-70f65d35a157' '76c6dd76-2939-4b53-afd4-ac41d01e5213' 'd88eefaa-699d-4eba-989d-72a812faf2ce' '1c693f33-a856-478c-bd4e-c93167404611' '97529f00-5996-4752-a108-058e0a8abd1b' '14c817c6-bfb8-4d0f-bcac-b5266bee7d82' 'ea8b5d5c-c53a-4317-a912-88ddaaeafcd5' 'dc529fd0-54b6-46a3-8b5c-09c7eb216d35' 'f40fd410-0fdf-4c29-8b58-9ef6f15bef65' 'ba1c42e0-1177-46ab-ad98-6b2ddfa23158' 'd62217ab-0916-4349-9660-431720f64a87' 'b4f63358-c147-4c7d-b8c8-cbe336155156' 'e719dfba-450f-4fbf-8eed-573c30a8eeae' '5d29f7cf-f699-44a9-8d47-7981e2162ef2');
_k0 = _ord;
run;
data work.final;
length col1 col2 $200 _pagelbl $200;
set work._inst work._fixed;
run;
proc sort data=work.final; by _page _k0; run;
data work.final;
set work.final;
_ord = _n_;
keep _page _pagelbl _ord _indent _rowid _kind rowlabel col1 col2;
run;
/*==== 90-report ====*/
/* 90-report: from the shell; the titles, columns, headers and footnotes are not changed here. */
%ls_need(_bign1 _bign2);
%ls_final_check(columns=_page _pagelbl _ord _indent _rowid _kind rowlabel col1 col2);
proc sort data=work.final out=work._report; by _page _ord; run;
data work._report;
set work._report;
/* Two spaces per step of indentation: the label column keeps leading spaces (asis=on). */
if _indent > 0 then rowlabel = repeat(' ', 2 * _indent - 1) || rowlabel;
run;
%let _lspaged = 0;
proc sql noprint; select count(*) into :_lspaged trimmed from work._report where _pagelbl ne ''; quit;
options orientation=portrait;
ods listing close;
ods rtf file="/work/out/t-14-1-3.rtf" style=journal;
title1 j=l "ONCO-EX" j=r "Page ~{thispage} of ~{lastpage}";
title2 j=c "Table 14.1.3";
title3 j=c "Summary of Exposure to Study Treatment";
title4 j=c "Safety Analysis Set";
footnote1 j=l "Cumulative dose: Standard of Care mg/m2; Clinwrightinib 200 mg mg.";
footnote2 j=l "Dose intensity: Standard of Care mg/m2/week; Clinwrightinib 200 mg mg/day.";
footnote3 j=l "Dose intensity: cumulative dose / treatment duration; relative dose intensity: 100 x dose intensity / planned dose intensity.";
footnote4 j=l "Percentages are of the subjects in each column.";
footnote5 j=l "Source: ADEX.";
footnote6 j=l "Program: t-14-1-3.sas";
%macro _ls_report;
proc report data=work._report nowd split='|' missing style(report)={width=100%};
column _page _pagelbl _ord _indent _kind rowlabel col1 col2;
define _page / order order=internal noprint;
define _pagelbl / order noprint;
define _ord / order order=internal noprint;
define _indent / display noprint;
define _kind / display noprint;
define rowlabel / display "" style(column)={cellwidth=40% asis=on} style(header)={just=l};
define col1 / display "Standard of Care|(N=&_bign1.)" style(column)={cellwidth=30% just=c} style(header)={just=c};
define col2 / display "Clinwrightinib 200 mg|(N=&_bign2.)" style(column)={cellwidth=30% just=c} style(header)={just=c};
%if &_lspaged > 0 %then %do;
compute before _pagelbl / style={just=l};
line _pagelbl $200.;
endcomp;
%end;
break after _page / page;
run;
%mend _ls_report;
%_ls_report;
ods rtf close;
ods listing;
%ls_final_export;