<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: proc report table in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898705#M355229</link>
    <description>&lt;P&gt;With complex layout requirements, I tend to use HTML, and use a DATA step to write the raw HTML code.&lt;/P&gt;
&lt;P&gt;First, I write a HTML file manually until I get the wanted result, and then I automate that creation.&lt;/P&gt;
&lt;P&gt;HTML files also make the publishing part easy, just put them into the documents directory of the SAS BI web server.&lt;/P&gt;</description>
    <pubDate>Mon, 16 Oct 2023 07:29:27 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2023-10-16T07:29:27Z</dc:date>
    <item>
      <title>proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898451#M355106</link>
      <description>&lt;DIV&gt;Hi everyone;&lt;/DIV&gt;
&lt;DIV&gt;I have asked this question before, I'm asking again to be sure people understand the question. Please pardon me.&lt;/DIV&gt;
&lt;DIV&gt;The computed line after agegrp is preventing the vjust=center from moving the text to the center, more like the computed line " " is a barrier, you can run the code without the compute block to see the difference.&lt;BR /&gt;Thanks.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;data have;&lt;/DIV&gt;
&lt;DIV&gt;input strain $ day cyto $ age $;&lt;/DIV&gt;
&lt;DIV&gt;datalines;&lt;/DIV&gt;
&lt;DIV&gt;wuhan 1 CD107a 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 1 IFN? 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 1 TNFa 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 1 L-12 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 1 CD107a 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 1 IFN? 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 1 TNFa 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 1 L-12 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 64 CD107a 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 64 IFN? 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 64 TNFa 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 64 L-12 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 64 CD107a 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 64 IFN? 40&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;wuhan 64 TNFa 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 64 L-12 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 120 CD107a 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 120 IFN? 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 120 TNFa 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 120 L-12 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 120 CD107a 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 120 IFN? 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 120 TNFa 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 120 L-12 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 360 CD107a 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 360 IFN? 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 360 TNFa 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 360 L-12 18&lt;/DIV&gt;
&lt;DIV&gt;wuhan 360 CD107a 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 360 IFN? 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 360 TNFa 40&lt;/DIV&gt;
&lt;DIV&gt;wuhan 360 L-12 40&lt;/DIV&gt;
&lt;DIV&gt;;&lt;/DIV&gt;
&lt;DIV&gt;run;&lt;/DIV&gt;
&lt;DIV&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;if age= "18" then agegrp = "18-39";&lt;BR /&gt;else if age = "40" then agegrp = "40-60";&lt;/DIV&gt;
&lt;DIV&gt;drop age;&lt;BR /&gt;run;&lt;/DIV&gt;
&lt;DIV&gt;ods pdf file="C:\Users\Classroom\Desktop\internship\practice.pdf";&lt;/DIV&gt;
&lt;DIV&gt;proc report data=want spanrows headskip nowd headline ps=170 split='*' missing contents="";&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp;column strain day agegrp Cyto;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; define strain / style={just=c asis=on cellwidth=6% vjust=center} order flow;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; define day / style={just=c asis=on cellwidth=7% vjust=center} "Day" order flow;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; define agegrp / style={just=c asis=on cellwidth=9% vjust=center} "Age Group" order flow;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; define Cyto / style={just=c asis=on cellwidth=7%} "Cytokine" display flow;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; by strain;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; compute after agegrp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; line " ";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; endcomp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; compute after strain;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; line "...";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; endcomp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;run;&lt;/DIV&gt;
&lt;DIV&gt;ods pdf close;&lt;/DIV&gt;</description>
      <pubDate>Fri, 13 Oct 2023 08:25:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898451#M355106</guid>
      <dc:creator>PrinceAde</dc:creator>
      <dc:date>2023-10-13T08:25:55Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898459#M355113</link>
      <description>&lt;P&gt;Please add a link to the previously posted question, so we can see what was already suggested.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 09:42:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898459#M355113</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2023-10-13T09:42:21Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898460#M355114</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/11562"&gt;@Kurt_Bremser&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can't access that again, the conversation was archived/deleted. But spanrows and vjust=center were suggested, that's how I got the current table.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 09:49:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898460#M355114</guid>
      <dc:creator>PrinceAde</dc:creator>
      <dc:date>2023-10-13T09:49:26Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898465#M355115</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;so you want do insert an empty line after each age group but still want to group by strain and merge the cells vertically.&lt;/P&gt;
&lt;P&gt;It should be doable within proc report but I would have to extensively consult the documentation and try around&lt;/P&gt;
&lt;P&gt;In case you do not get any suitable answer here, you could do a quick and dirty work-around by editing your dataset before printing and inserting the empty row/cells you need:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
proc sort data=want out=want1;by strain day agegrp data; run;

data want2;
   set want1;
   by strain day agegrp;
   retain agegrpcat .;
   if first.agegrp then agegrpcat+1;
run;

data want3;
   set want2;
   by strain day agegrp agegrpcat;
   output;

   if last.agegrpcat then do;

      ARRAY chars _CHARACTER_;
      do over chars;
         if strip(upcase(vname(chars))) not in ('STRAIN' 'AGEGRPCAT') then do;
            call missing(chars);
         end;
      end;

      ARRAY nums _NUMERIC_;
      do over nums;
         if strip(upcase(vname(nums))) not in ('STRAIN' 'AGEGRPCAT') then do;
            call missing(nums);
         end;
      end;
      output;
   end;

run;

ods pdf file="C:\Users\Classroom\Desktop\internship\practice2.pdf";
proc report data=want3 spanrows headskip nowd headline ps=170 split='*' missing contents="";
   column strain day agegrp agegrpcat Cyto;
    define strain    / style={just=c asis=on cellwidth=6% vjust=center} order            flow;
    define day       / style={just=c asis=on cellwidth=7% vjust=center} "Day"       flow;
    define agegrp    / style={just=c asis=on cellwidth=9% vjust=center} "Age Group" flow;
    define agegrpcat / noprint ;
    define Cyto      / style={just=c asis=on cellwidth=7%} "Cytokine" display flow;
run;
ods pdf close;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 13 Oct 2023 10:32:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898465#M355115</guid>
      <dc:creator>Oligolas</dc:creator>
      <dc:date>2023-10-13T10:32:22Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898469#M355117</link>
      <description>&lt;P&gt;This empty blank is above the values.&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="16971962759321723002942873999232.jpg" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/88832iBA759E56938C10F6/image-size/large?v=v2&amp;amp;px=999" role="button" title="16971962759321723002942873999232.jpg" alt="16971962759321723002942873999232.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 11:27:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898469#M355117</guid>
      <dc:creator>PrinceAde</dc:creator>
      <dc:date>2023-10-13T11:27:25Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898496#M355129</link>
      <description>&lt;P&gt;Going to repeat some stuff from the "archived": You are using options that only work in the LISTING destination. See the highlighted bits below in red. When you include those it causes questions about exactly what you think is contributing to the specific report. If you show a picture from the LISTING destination then it will not match any other ODS destination because the other destinations won't use these.&lt;/P&gt;
&lt;PRE&gt;ods pdf file="C:\Users\Classroom\Desktop\internship\practice.pdf";
proc report data=want spanrows &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;headskip&lt;/STRONG&gt;&lt;/FONT&gt; nowd &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;headline&lt;/STRONG&gt; &lt;STRONG&gt;ps=170&lt;/STRONG&gt;&lt;/FONT&gt; split='*' missing contents="";
   column strain day agegrp Cyto;
    define strain / style={just=c asis=on cellwidth=6% vjust=center} order &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;flow&lt;/STRONG&gt;&lt;/FONT&gt;;
    define day / style={just=c asis=on cellwidth=7% vjust=center} "Day" order &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;flow&lt;/STRONG&gt;&lt;/FONT&gt;;
    define agegrp / style={just=c asis=on cellwidth=9% vjust=center} "Age Group" order &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;flow&lt;/STRONG&gt;&lt;/FONT&gt;;
    define Cyto / style={just=c asis=on cellwidth=7%} "Cytokine" display &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;flow&lt;/STRONG&gt;&lt;/FONT&gt;;
by strain;
compute after agegrp;
line " ";
endcomp;
compute after strain;
line "...";
endcomp;
run;&lt;/PRE&gt;
&lt;P&gt;I also call out that "picture" of your output does not come from the report code above. Reason: your picture does not show any result of the line statment from the compute after for agegrp and strain.&lt;/P&gt;
&lt;P&gt;With your example data there is no "missing" as shown in that picture.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There are times for proc report that you add helper variable(s) that do not actually display in the body of the report.&lt;/P&gt;
&lt;P&gt;You place them on the columns statement to the LEFT so they are available to control just about any appearance in the actual body. The on the DEFINE you use option NOPRINT which tells SAS to include them in the body of the report.&lt;/P&gt;
&lt;P&gt;Then you can use Compute blocks with THOSE variable to change appearance based on the values.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 15:32:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898496#M355129</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2023-10-13T15:32:04Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898499#M355130</link>
      <description>&lt;P&gt;Hi:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Using your posted data and simplifying your code and changing the compute block for the blank line and removing the unneeded cellwidth and asis=on specifications and reducing the output to fit on one page, I think this is closer to what you want. I'm still not sure of the purpose or reason behind the need to show 3 dots however, I have highlighted the lines created by changing compute after agegrp to compute after day and then I've also highlighted the one line that was written by compute after strain:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Cynthia_sas_0-1697213009599.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/88839iA05B2451F30A4A56/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Cynthia_sas_0-1697213009599.png" alt="Cynthia_sas_0-1697213009599.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;SPANROWS seems to be working correctly .&lt;/P&gt;
&lt;P&gt;Cynthia&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 16:04:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898499#M355130</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2023-10-13T16:04:12Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898511#M355135</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13549"&gt;@Cynthia_sas&lt;/a&gt;&amp;nbsp;Thanks.&lt;/P&gt;
&lt;P&gt;The computed blank is after agegp and not day.&lt;/P&gt;
&lt;P&gt;If you use agegp(compute after agegp; line " "; run; endcomp;), you will notice that the text(e.g Wuhan) won't move pass the blank line. I'm trying to move the text beyond that line(for example, wuhan should be somewhere between&amp;nbsp; 64 and 120 in spite of the blank line).&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 17:32:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898511#M355135</guid>
      <dc:creator>PrinceAde</dc:creator>
      <dc:date>2023-10-13T17:32:41Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898513#M355136</link>
      <description>&lt;P&gt;Hi:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; That's not the way that PROC REPORT works by default. When you have a group or order variable as primary (as you do with strain) and then you have another group or order variable nested within that primary order variable, the values for the primary ordering variable do NOT automatically repeat for each group. You need to control for that yourself, either by making a temporary computed variable that you create. The way that ORDER items work is that the duplicate values are suppressed. So if you really want a blank link under each agegroup unique value and you want the values of strain to repeat, then you'd need to do something more like this:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Cynthia_sas_0-1697218274100.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/88844i23CEFDE62A8FFB8D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Cynthia_sas_0-1697218274100.png" alt="Cynthia_sas_0-1697218274100.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;And then, if you wanted to do something similar for the DAY variable, you'd use similar logic. In my example SAVESTRAIN is a PROC REPORT temporary variable whose value is retained automatically. So at the start of every unique value for STRAIN, I "grab" and save the current value in a variable so I can use the value as shown in the COMPUTE blocks.&lt;/P&gt;
&lt;P&gt;Cynthia&lt;/P&gt;
&lt;P&gt;.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 17:32:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898513#M355136</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2023-10-13T17:32:47Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898514#M355137</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13549"&gt;@Cynthia_sas&lt;/a&gt;&amp;nbsp; I'm not trying to repeat the values of strain, I'm to move the text to the middle. For example, the agegp is well placed between the cytokines, days should be between 18-39 and 40-60, likewise Wuhan should be in the middle of the value of&amp;nbsp; day(1, 64, 120 and 360, it should be between 64 and 120, in spite of the blank line), please note that without the blank line after agegp, it works fine in positioning these values in the middle.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 17:48:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898514#M355137</guid>
      <dc:creator>PrinceAde</dc:creator>
      <dc:date>2023-10-13T17:48:32Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898532#M355144</link>
      <description>&lt;P&gt;Hi: Unfortunately, I'm not sure I understand what you mean. Saying that a value "should" be in the middle of the another value is expressing your desired result. PROC REPORT may not do what you think it "should" or what you want it to do. &lt;BR /&gt;PROC REPORT considers a break line placed with a COMPUTE block to be a "hard" break. So when you say that a value "should" be positioned "in spite of the blank line" means you want PROC REPORT to do something that it does NOT do. That's not how PROC REPORT operates. You can control the placement of the break line, as I showed when I shifted the break from AGEGRP to DAY. And, shifting the break caused the spanning text for the ORDER items to be shifted accordingly. But the placement of the order variables when using SPANROWS very much depends on the placement of the break line, so the "should" of what you want may or may not be possible given the way that PROC REPORT works.&lt;BR /&gt;The example below shows the way that PROC REPORT is going to work based on different positioning of the line written in the COMPUTE block.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Cynthia_sas_0-1697225398334.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/88848i8A0BB56E3C460A87/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Cynthia_sas_0-1697225398334.png" alt="Cynthia_sas_0-1697225398334.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;This is how break processing works. When you write a LINE with a COMPUTE block, it will span the entire report table from left side to right side, thus changing the placement of STRAIN and DAY, as shown in my 3 examples above.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This IS the way PROC REPORT will work. What you say it "should" do or what you want it to do is not possible if you continue to put your LINE statement blank line between each AGEGRP value. You may need to investigate the Report Writing Interface with a DATA step program if you need more control over row spanning and column spanning.&lt;BR /&gt;Cynthia&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 19:35:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898532#M355144</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2023-10-13T19:35:07Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898551#M355155</link>
      <description>&lt;P&gt;Suggestion: instead of showing things that are not what you actually want show what you do want. You haven't been very clear on that in any of the threads related to this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Use the example.&lt;/P&gt;
&lt;P&gt;Go to a word processor program and start working with the table options. Place the values in the desired locations with the cell borders.&lt;/P&gt;
&lt;P&gt;Instead of a blank or series of blanks you may want to show something like &amp;lt;blank line goes here&amp;gt; because there could very well be other places with blank cells and we can't tell clearly which is supposed to be from what.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;No guarantees you will get a Proc Report answer.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Oct 2023 21:04:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898551#M355155</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2023-10-13T21:04:55Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898604#M355186</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13884"&gt;@ballardw&lt;/a&gt;&amp;nbsp; &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13549"&gt;@Cynthia_sas&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry for the late reply. I have the snippet of the table I expect to get.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks.&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="16972936139246989226016222437049.jpg" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/88863i3105056B35EC7AF5/image-size/large?v=v2&amp;amp;px=999" role="button" title="16972936139246989226016222437049.jpg" alt="16972936139246989226016222437049.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 14 Oct 2023 14:28:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898604#M355186</guid>
      <dc:creator>PrinceAde</dc:creator>
      <dc:date>2023-10-14T14:28:12Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898621#M355198</link>
      <description>&lt;P&gt;The desire to have the Strain "span" across values of days and age means that a Report&amp;nbsp; LINE statement isn't going to work. That goes across the entire width of a report table, which is going interfere with spanning rows.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Summarized you values so proc report is not having to summarize anything.&lt;/P&gt;
&lt;P&gt;Then look at the DATA step Report Writing Interface that allows you to mix spanning rows, columns based on the values of the variable conditionally.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 14 Oct 2023 22:02:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898621#M355198</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2023-10-14T22:02:52Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898701#M355228</link>
      <description>&lt;P&gt;I would use RWI to create a report with so many special layout requirements.&lt;/P&gt;</description>
      <pubDate>Mon, 16 Oct 2023 06:05:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898701#M355228</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2023-10-16T06:05:12Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898705#M355229</link>
      <description>&lt;P&gt;With complex layout requirements, I tend to use HTML, and use a DATA step to write the raw HTML code.&lt;/P&gt;
&lt;P&gt;First, I write a HTML file manually until I get the wanted result, and then I automate that creation.&lt;/P&gt;
&lt;P&gt;HTML files also make the publishing part easy, just put them into the documents directory of the SAS BI web server.&lt;/P&gt;</description>
      <pubDate>Mon, 16 Oct 2023 07:29:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898705#M355229</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2023-10-16T07:29:27Z</dc:date>
    </item>
    <item>
      <title>Re: proc report table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898709#M355230</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input strain $ day cyto $ age $;
datalines;
wuhan 1 CD107a 18
wuhan 1 IFN? 18
wuhan 1 TNFa 18
wuhan 1 L-12 18
wuhan 1 CD107a 40
wuhan 1 IFN? 40
wuhan 1 TNFa 40
wuhan 1 L-12 40
wuhan 64 CD107a 18
wuhan 64 IFN? 18
wuhan 64 TNFa 18
wuhan 64 L-12 18
wuhan 64 CD107a 40
wuhan 64 IFN? 40 
wuhan 64 TNFa 40
wuhan 64 L-12 40
wuhan 120 CD107a 18
wuhan 120 IFN? 18
wuhan 120 TNFa 18
wuhan 120 L-12 18
wuhan 120 CD107a 40
wuhan 120 IFN? 40
wuhan 120 TNFa 40
wuhan 120 L-12 40
wuhan 360 CD107a 18
wuhan 360 IFN? 18
wuhan 360 TNFa 18
wuhan 360 L-12 18
wuhan 360 CD107a 40
wuhan 360 IFN? 40
wuhan 360 TNFa 40
wuhan 360 L-12 40
;
run;
data want;
set have;
if age= "18" then agegrp = "18-39";
else if age = "40" then agegrp = "40-60";
drop age;
run;

proc sort data=want out=want1;by strain day agegrp; run;

data want2;
   set want1;
   by strain day agegrp;
   retain agegrpcat .;
   if first.agegrp then agegrpcat+1;
run;

data want3;
   set want2(rename=(day=_day));
   by strain _day agegrp agegrpcat;
   output;

   if last.agegrpcat then do;

      ARRAY chars _CHARACTER_;
      do over chars;
         if strip(upcase(vname(chars))) not in ('STRAIN' 'AGEGRPCAT' '_DAY') then do;
            call missing(chars);
         end;
      end;

      ARRAY nums _NUMERIC_;
      do over nums;
         if strip(upcase(vname(nums))) not in ('STRAIN' 'AGEGRPCAT'  '_DAY') then do;
            call missing(nums);
         end;
      end;
      day=_day;
      output;
   end;
   drop _day;
run;

ods pdf file="C:\Users\Classroom\Desktop\internship\practice.pdf";
proc report data=want3 spanrows headskip nowd headline ps=170 split='*' missing contents="";
   column strain day agegrp agegrpcat Cyto;
    define strain    / style={just=c asis=on cellwidth=6% vjust=center} order            flow;
    define day       / style={just=c asis=on cellwidth=7% vjust=center} "Day"       flow;
    define agegrp    / style={just=c asis=on cellwidth=9% vjust=center} "Age Group" flow;
    define agegrpcat / noprint ;
    define Cyto      / style={just=c asis=on cellwidth=7%} "Cytokine" display flow;
run;
ods pdf close;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 16 Oct 2023 08:29:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-report-table/m-p/898709#M355230</guid>
      <dc:creator>Oligolas</dc:creator>
      <dc:date>2023-10-16T08:29:27Z</dc:date>
    </item>
  </channel>
</rss>

