SAS Programming

DATA Step, Macro, Functions and more
BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
omka_
Fluorite | Level 6

Hi everyone,

 

I am using SAS v9.4. i am creating a report for a complex table with all the subjects listing down with parameters wrapping around the pages and descriptive statistics at the bottom - attached is an example.  However, I am having trouble creating the page break at the right place. I have made a dummy variable that changes from number 1 to 2 after subject 1001-518, which is where I need the page to break and go to the next page. Instead of going to the next page, SAS is squeezing the parameters that should be on the next page into the same page. If someone can solve this issue it would be much appreciated. To clarify the variables, _Label_ is the column which has the subject ID's (1001-501 to 1001-524), dummy is the variable to use for the page break, since I want the page to break after subject 1001-518, and dummy1 is used for the compute block to create the horizontal line that goes between the last subject and the descriptive statistics. I have pasted the code below along with the table and dataset in the attachments. Thanks.

 

proc report data=final_1 nowd nocenter headline headskip missing split="~" list 
STYLE(REPORT)=[FRAME=above RULES=GROUP just=center bordercolor=black outputwidth =10 in cellpadding=2 cellspacing=1]
STYLE(HEADER)=[frame=below font_size=1 font_face="Courier New" just=c font_weight=bold cellpadding=2pt ]
STYLE(COLUMN)=[frame=below ];
columns _LABEL_ dummy dummy1 charcol1 - charcol16;

define _LABEL_     / ID "Subject ~ Number" style(column)=[just=c cellwidth= .55in ] style(header)=[just=c];
define dummy     / group order order=data "Subject ~ Number" style(column)=[just=c cellwidth= .4in ] style(header)=[just=c] noprint;
define dummy1     / group "Subject ~ Number" style(column)=[just=c cellwidth= .4in ] style(header)=[just=c] noprint;
define charcol1   /  "AUC^{sub 0-4h} ~ (h*ng/mL)" style(column)=[just=c cellwidth=.9in ] style(header)=[just=c];
define charcol2    /  "AUC^{sub 0-24h} ~ (h*ng/mL)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol3    /  "AUC^{sub 0-t} ~ (h*ng/mL)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol4    /  "C^{sub max} ~ (ng/mL)" style(column)=[just=c cellwidth=.6in ] style(header)=[just=c];
define charcol5    /  "C^{sub 10min} ~ (ng/mL)" style(column)=[just=c cellwidth=.6in ] style(header)=[just=c];
define charcol6    /  "C^{sub min} ~ (ng/mL)" style(column)=[just=c cellwidth=.6in ] style(header)=[just=c];
define charcol7    /  "T^{sub max} ~ (h)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol8    /  "t^{sub lag} ~ (h)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol9    /  "t^{sub last} ~ (h)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol10    /  "t^{sub 1/2} ~ (h)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol11   /  "^{unicode lambda}^{sub z} ~ (1/h)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol12   /  "V^{sub z}/F ~ (L)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol13   /  "DN-AUC^{sub 0-4h} ~ (h*ng)/mL/mg)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol14   /  "DN-AUC^{sub 0-24h} ~ (h*ng)/mL/mg)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol15    /  "DN-AUC^{sub 0-t} ~ (h*ng)/mL/mg)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol16   /  "DN-C^{sub max} ~ (ng/mL/mg)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];


break after dummy/ skip page ;

compute dummy1;
	if dummy1 > 1 then call define(_row_,'style', 'style={bordertopcolor=black bordertopwidth=3}');
endcomp;

compute before dummy1;
	line " ";
endcomp;


run;

ods rtf close;
ODS LISTING;
title;
footnote;
1 ACCEPTED SOLUTION

Accepted Solutions
tsap
Pyrite | Level 9

Ok so that criteria is a little bit different than the initial request, but definitely possible.

 

Try this logic:

title; 
ODS LISTING CLOSE;     
ODS RTF FILE="&temp./myrtf.rtf"  style=styles.minimal;

proc report data=final_1 nowd nocenter headline headskip missing split="~" list
STYLE(REPORT)=[FRAME=above RULES=GROUP just=center bordercolor=black outputwidth =9in cellpadding=2 cellspacing=1]
STYLE(HEADER)=[frame=below font_size=1 font_face="Courier New" just=c font_weight=bold cellpadding=2pt ]
STYLE(COLUMN)=[frame=below];
columns _LABEL_ dummy dummy1 charcol1 - charcol16;

define _LABEL_    	/ ID "Subject ~ Number" 					style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define dummy    	/ group order order=data noprint;
define dummy1  		/ group	noprint;
define charcol1   	/ "AUC^{sub 0-4h} ~ (h*ng/mL)"				style(column)=[just=c cellwidth=.85in  ] style(header)=[just=c];
define charcol2    	/ "AUC^{sub 0-24h} ~ (h*ng/mL)"				style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define charcol3    	/ "AUC^{sub 0-t} ~ (h*ng/mL)" 				style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define charcol4    	/ "C^{sub max} ~ (ng/mL)" 					style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define charcol5    	/ "C^{sub 10min} ~ (ng/mL)" 				style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define charcol6    	/ "C^{sub min} ~ (ng/mL)" 					style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define charcol7    	/ "T^{sub max} ~ (h)" 						style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol8    	/ "t^{sub lag} ~ (h)"						style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol9    	/ "t^{sub last} ~ (h)" 						style(column)=[just=c cellwidth=.55in ] style(header)=[just=c];
define charcol10    / "t^{sub 1/2} ~ (h)" 						style(column)=[just=c cellwidth=.6in ] style(header)=[just=c];
define charcol11   	/ "^{unicode lambda}^{sub z} ~ (1/h)" page	style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol12   	/ "V^{sub z}/F ~ (L)" 						style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol13   	/ "DN-AUC^{sub 0-4h} ~ (h*ng)/mL/mg)" 		style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol14   	/ "DN-AUC^{sub 0-24h} ~ (h*ng)/mL/mg)" 		style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol15    / "DN-AUC^{sub 0-t} ~ (h*ng)/mL/mg)" 		style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol16   	/ "DN-C^{sub max} ~ (ng/mL/mg)" 			style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];


break after dummy/ skip page ;

compute dummy1;
	if dummy1 > 1 then call define(_row_,'style', 'style={bordertopcolor=black bordertopwidth=3}');
endcomp;

compute before dummy1;
	line " ";
endcomp;
run;

ods rtf close;
ODS LISTING;
title;
footnote;

This has the 9in width that you need for the overall table, and then I used the cell widths from your logic in the post. To split the table at the "sub 1/2" column, I put the 'page' option in the "lambda" define details. So the subject-number carries over onto the next page and puts the remaining related variable values for the columns starting at lambda down.

 

Hope this helps.

View solution in original post

8 REPLIES 8
ballardw
Super User

Try moving the page control variable to the first position in the COLUMN statement.

Proc report builds reports from left to right and likely your page control needs to be "seen" before the label.

 

I can't actual test your code as you did not include all of the ODS RTF definition or other options that might affect output and the fixed cell widths you have specified will not display properly without that information in the default document.

omka_
Fluorite | Level 6

I tried what you mentioned but still the same output comes out.

 

Here is the full code with the ods definitions.

 

options mlogic mprint nodate nonumber nobyline ls=256 orientation=landscape 
leftmargin=1.0in rightmargin=1.0in topmargin=1.5in bottommargin=1.0in missing=" ";

ods escapechar "^";
%LET currentdate=%SYSFUNC(date(),date9.);
%LET currenttime=%SYSFUNC(time(),hhmm6.);
%LET path=%sysget(SAS_EXECFILEPATH);

ODS LISTING CLOSE;
ods rtf file="table.rtf" style=styles.minimal ;

proc report data=final_1 nowd nocenter headline headskip missing split="~" list 
STYLE(REPORT)=[FRAME=above RULES=GROUP just=center bordercolor=black outputwidth =9 in cellpadding=2 cellspacing=1]
STYLE(HEADER)=[frame=below font_size=1 font_face="Courier New" just=c font_weight=bold cellpadding=2pt ]
STYLE(COLUMN)=[frame=below ];
columns dummy dummy1 _LABEL_ col1 - col16 ;

define dummy     / group order order=data "Subject ~ Number" style(column)=[just=c cellwidth= .7in ] style(header)=[just=c] noprint;
define dummy1     / group "Subject ~ Number" style(column)=[just=c cellwidth= .7in ] style(header)=[just=c] noprint;
define _LABEL_     / ID "Subject ~ Number" style(column)=[just=c cellwidth= .65in ] style(header)=[just=c];
define col1   /  "AUC^{sub 0-4h} ~ (h*ng/mL)" style(column)=[just=c cellwidth=.85in ] style(header)=[just=c];
define col2    /  "AUC^{sub 0-24h} ~ (h*ng/mL)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define col3    /  "AUC^{sub 0-t} ~ (h*ng/mL)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define col4    /  "C^{sub max} ~ (ng/mL)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define col5    /  "C^{sub 10min} ~ (ng/mL)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define col6    /  "C^{sub min} ~ (ng/mL)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define col7    /  "T^{sub max} ~ (h)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define col8    /  "t^{sub lag} ~ (h)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define col9    /  "t^{sub last} ~ (h)" style(column)=[just=c cellwidth=.55in ] style(header)=[just=c];
define col10    /  "t^{sub 1/2} ~ (h)" style(column)=[just=c cellwidth=.6in ] style(header)=[just=c];
define col11   /  "^{unicode lambda}^{sub z} ~ (1/h)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define col12   /  "V^{sub z}/F ~ (L)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define col13   /  "DN-AUC^{sub 0-4h} ~ (h*ng)/mL/mg)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define col14   /  "DN-AUC^{sub 0-24h} ~ (h*ng)/mL/mg)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define col15    /  "DN-AUC^{sub 0-t} ~ (h*ng)/mL/mg)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define col16   /  "DN-C^{sub max} ~ (ng/mL/mg)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];

break after dummy/ skip page ;

compute dummy1;
	if dummy1 > 1 then call define(_row_,'style', 'style={bordertopcolor=black bordertopwidth=3}');
endcomp;

compute before dummy1;
	line " ";
endcomp;

ods rtf close;
ODS LISTING;
title;
footnote;
tsap
Pyrite | Level 9

After looking at your data, I don't believe the issue you are encountering is actually a 'page break' problem. Because from what I can see, the report is breaking at the subject number that you want it to, as per your comments.

 

To me it seems like the actual issue is related to the width of the table and all of the included variables. You set the total table width as 10 inches, but then if you add up all of the individual column cell widths, they total more than 10 inches. So the fields beyond that 10 inch limit are getting stacked below the initial table data.

 

I made some modifications to the cell widths and I believe it will not output the way you were expecting.

proc report data=final_1 nowd nocenter headline headskip missing split="~" list
STYLE(REPORT)=[FRAME=above RULES=GROUP just=center bordercolor=black outputwidth =10in cellpadding=2 cellspacing=1]
STYLE(HEADER)=[frame=below font_size=1 font_face="Courier New" just=c font_weight=bold cellpadding=2pt ]
STYLE(COLUMN)=[frame=below];
columns _LABEL_ dummy dummy1 charcol1 - charcol16;

define _LABEL_    	/ ID "Subject ~ Number" 				style(column)=[just=c cellwidth=.75in  ] style(header)=[just=c];
define dummy    	/ group order order=data noprint;
define dummy1  		/ group	noprint;
define charcol1   	/ "AUC^{sub 0-4h} ~ (h*ng/mL)"			style(column)=[just=c cellwidth=.62in  ] style(header)=[just=c];
define charcol2    	/ "AUC^{sub 0-24h} ~ (h*ng/mL)"			style(column)=[just=c cellwidth=.62in  ] style(header)=[just=c];
define charcol3    	/ "AUC^{sub 0-t} ~ (h*ng/mL)" 			style(column)=[just=c cellwidth=.62in  ] style(header)=[just=c];
define charcol4    	/ "C^{sub max} ~ (ng/mL)" 				style(column)=[just=c cellwidth=.51in  ] style(header)=[just=c];
define charcol5    	/ "C^{sub 10min} ~ (ng/mL)" 			style(column)=[just=c cellwidth=.52in  ] style(header)=[just=c];
define charcol6    	/ "C^{sub min} ~ (ng/mL)" 				style(column)=[just=c cellwidth=.52in  ] style(header)=[just=c];
define charcol7    	/ "T^{sub max} ~ (h)" 					style(column)=[just=c cellwidth=.56in ] style(header)=[just=c];
define charcol8    	/ "t^{sub lag} ~ (h)"					style(column)=[just=c cellwidth=.56in ] style(header)=[just=c];
define charcol9    	/ "t^{sub last} ~ (h)" 					style(column)=[just=c cellwidth=.56in ] style(header)=[just=c];
define charcol10    / "t^{sub 1/2} ~ (h)" 					style(column)=[just=c cellwidth=.56in ] style(header)=[just=c];
define charcol11   	/ "^{unicode lambda}^{sub z} ~ (1/h)"	style(column)=[just=c cellwidth=.62in ] style(header)=[just=c];
define charcol12   	/ "V^{sub z}/F ~ (L)" 					style(column)=[just=c cellwidth=.56in ] style(header)=[just=c];
define charcol13   	/ "DN-AUC^{sub 0-4h} ~ (h*ng)/mL/mg)" 	style(column)=[just=c cellwidth=.55in ] style(header)=[just=c];
define charcol14   	/ "DN-AUC^{sub 0-24h} ~ (h*ng)/mL/mg)" 	style(column)=[just=c cellwidth=.55in ] style(header)=[just=c];
define charcol15    / "DN-AUC^{sub 0-t} ~ (h*ng)/mL/mg)" 	style(column)=[just=c cellwidth=.55in ] style(header)=[just=c];
define charcol16   	/ "DN-C^{sub max} ~ (ng/mL/mg)" 		style(column)=[just=c cellwidth=.55in ] style(header)=[just=c];


break after dummy/ skip page ;

compute dummy1;
	if dummy1 > 1 then call define(_row_,'style', 'style={bordertopcolor=black bordertopwidth=3}');
endcomp;

compute before dummy1;
	line " ";
endcomp;


run;

ods rtf close;
ODS LISTING;
title;
footnote;

 

omka_
Fluorite | Level 6

Okay that makes sense, however, I need to make the report so that the first 11 columns (subject ID to lambda) are on the first page and then the rest of the parameters on the second page.  On top of that, the output width is too high. I need it to be 9 inches so that the tables line up with the headers. If these two things can be done with your reasoning, I think this problem will be solved. Thanks.

omka_
Fluorite | Level 6

Correction: (subject ID to t 1/2)

tsap
Pyrite | Level 9

Ok so that criteria is a little bit different than the initial request, but definitely possible.

 

Try this logic:

title; 
ODS LISTING CLOSE;     
ODS RTF FILE="&temp./myrtf.rtf"  style=styles.minimal;

proc report data=final_1 nowd nocenter headline headskip missing split="~" list
STYLE(REPORT)=[FRAME=above RULES=GROUP just=center bordercolor=black outputwidth =9in cellpadding=2 cellspacing=1]
STYLE(HEADER)=[frame=below font_size=1 font_face="Courier New" just=c font_weight=bold cellpadding=2pt ]
STYLE(COLUMN)=[frame=below];
columns _LABEL_ dummy dummy1 charcol1 - charcol16;

define _LABEL_    	/ ID "Subject ~ Number" 					style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define dummy    	/ group order order=data noprint;
define dummy1  		/ group	noprint;
define charcol1   	/ "AUC^{sub 0-4h} ~ (h*ng/mL)"				style(column)=[just=c cellwidth=.85in  ] style(header)=[just=c];
define charcol2    	/ "AUC^{sub 0-24h} ~ (h*ng/mL)"				style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define charcol3    	/ "AUC^{sub 0-t} ~ (h*ng/mL)" 				style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define charcol4    	/ "C^{sub max} ~ (ng/mL)" 					style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define charcol5    	/ "C^{sub 10min} ~ (ng/mL)" 				style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define charcol6    	/ "C^{sub min} ~ (ng/mL)" 					style(column)=[just=c cellwidth=.65in  ] style(header)=[just=c];
define charcol7    	/ "T^{sub max} ~ (h)" 						style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol8    	/ "t^{sub lag} ~ (h)"						style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol9    	/ "t^{sub last} ~ (h)" 						style(column)=[just=c cellwidth=.55in ] style(header)=[just=c];
define charcol10    / "t^{sub 1/2} ~ (h)" 						style(column)=[just=c cellwidth=.6in ] style(header)=[just=c];
define charcol11   	/ "^{unicode lambda}^{sub z} ~ (1/h)" page	style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol12   	/ "V^{sub z}/F ~ (L)" 						style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol13   	/ "DN-AUC^{sub 0-4h} ~ (h*ng)/mL/mg)" 		style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol14   	/ "DN-AUC^{sub 0-24h} ~ (h*ng)/mL/mg)" 		style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol15    / "DN-AUC^{sub 0-t} ~ (h*ng)/mL/mg)" 		style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol16   	/ "DN-C^{sub max} ~ (ng/mL/mg)" 			style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];


break after dummy/ skip page ;

compute dummy1;
	if dummy1 > 1 then call define(_row_,'style', 'style={bordertopcolor=black bordertopwidth=3}');
endcomp;

compute before dummy1;
	line " ";
endcomp;
run;

ods rtf close;
ODS LISTING;
title;
footnote;

This has the 9in width that you need for the overall table, and then I used the cell widths from your logic in the post. To split the table at the "sub 1/2" column, I put the 'page' option in the "lambda" define details. So the subject-number carries over onto the next page and puts the remaining related variable values for the columns starting at lambda down.

 

Hope this helps.

omka_
Fluorite | Level 6

Fantastic! Thank you so much. Overall it looks great but the line separating the descriptive statistics is not there anymore. That is why I created the dummy1 variable to use compute block to add the line. If you can figure out how to fix that the whole thing will be finished. Thanks again for figuring out how to force it onto the next page.

tsap
Pyrite | Level 9

I'm not quite sure exactly how to add back that single line above those summary details. I've tried several different methods with no luck. The only option I can recommend is to put a page break in which would shift those summary lines to a new page altogether and put the same header row above them, but based on your last post it doesn't sound like that's the final solution you were looking to achieve.

 

Here's the logic to do the page break at the summary rows:

ODS LISTING CLOSE;     
ODS RTF FILE="&temp./myrtf.rtf"  style=styles.minimal;

proc report data=final_1 nowd nocenter headline headskip missing split="~" list 
STYLE(REPORT)=[FRAME=above RULES=GROUP just=center bordercolor=black outputwidth =9in cellpadding=2 cellspacing=1]
STYLE(HEADER)=[frame=below font_size=1 font_face="Courier New" just=c font_weight=bold cellpadding=2pt ]
STYLE(COLUMN)=[frame=below ];
columns _LABEL_ dummy dummy1 charcol1 - charcol16;

define _LABEL_     / ID "Subject ~ Number" style(column)=[just=c cellwidth= .65in ] style(header)=[just=c];
define dummy     / group order order=data noprint;
define dummy1     / group noprint;
define charcol1   /  "AUC^{sub 0-4h} ~ (h*ng/mL)" style(column)=[just=c cellwidth=.85in ] style(header)=[just=c];
define charcol2    /  "AUC^{sub 0-24h} ~ (h*ng/mL)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol3    /  "AUC^{sub 0-t} ~ (h*ng/mL)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol4    /  "C^{sub max} ~ (ng/mL)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol5    /  "C^{sub 10min} ~ (ng/mL)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol6    /  "C^{sub min} ~ (ng/mL)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol7    /  "T^{sub max} ~ (h)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol8    /  "t^{sub lag} ~ (h)" style(column)=[just=c cellwidth=.65in ] style(header)=[just=c];
define charcol9    /  "t^{sub last} ~ (h)" style(column)=[just=c cellwidth=.55in ] style(header)=[just=c];
define charcol10    /  "t^{sub 1/2} ~ (h)" style(column)=[just=c cellwidth=.6in ] style(header)=[just=c];
define charcol11   /  "^{unicode lambda}^{sub z} ~ (1/h)" page style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol12   /  "V^{sub z}/F ~ (L)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol13   /  "DN-AUC^{sub 0-4h} ~ (h*ng)/mL/mg)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol14   /  "DN-AUC^{sub 0-24h} ~ (h*ng)/mL/mg)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol15    /  "DN-AUC^{sub 0-t} ~ (h*ng)/mL/mg)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];
define charcol16   /  "DN-C^{sub max} ~ (ng/mL/mg)" style(column)=[just=c cellwidth=.7in ] style(header)=[just=c];

break after dummy/ skip page ;
break after dummy1/ skip page;
run;

ods rtf close;
ODS LISTING;
title;
footnote;

sas-innovate-white.png

Join us for our biggest event of the year!

Four days of inspiring keynotes, product reveals, hands-on learning opportunities, deep-dive demos, and peer-led breakouts. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 8 replies
  • 5542 views
  • 0 likes
  • 3 in conversation