<?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 tabulate challenge? in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389594#M66065</link>
    <description>&lt;P&gt;Hi Ksharp and ballardw,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks very much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ksharp's&amp;nbsp;code is generating the results&amp;nbsp;I expected but in terms of a SAS data set like below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;month&lt;/TD&gt;&lt;TD&gt;Missing&lt;/TD&gt;&lt;TD&gt;&amp;lt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;&amp;gt;0-100&lt;/TD&gt;&lt;TD&gt;&amp;gt;100-200&lt;/TD&gt;&lt;TD&gt;&amp;gt;200-300&lt;/TD&gt;&lt;TD&gt;&amp;gt;300-400&lt;/TD&gt;&lt;TD&gt;&amp;gt;400-500&lt;/TD&gt;&lt;TD&gt;&amp;gt;500-1000&lt;/TD&gt;&lt;TD&gt;&amp;gt;1000&lt;/TD&gt;&lt;TD&gt;_NAME_&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jun&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;COUNT&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jun&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;10.00%&lt;/TD&gt;&lt;TD&gt;20.00%&lt;/TD&gt;&lt;TD&gt;20.00%&lt;/TD&gt;&lt;TD&gt;20.00%&lt;/TD&gt;&lt;TD&gt;10.00%&lt;/TD&gt;&lt;TD&gt;10.00%&lt;/TD&gt;&lt;TD&gt;10.00%&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;PERCENT&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;May&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;COUNT&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;May&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;23.10%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;30.80%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;PERCENT&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jun&lt;/TD&gt;&lt;TD&gt;-7.69%&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;2.31%&lt;/TD&gt;&lt;TD&gt;12.30%&lt;/TD&gt;&lt;TD&gt;-3.08%&lt;/TD&gt;&lt;TD&gt;20.00%&lt;/TD&gt;&lt;TD&gt;-20.80%&lt;/TD&gt;&lt;TD&gt;2.31%&lt;/TD&gt;&lt;TD&gt;2.31%&lt;/TD&gt;&lt;TD&gt;-7.69%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To present these resutls I have to export to Excel which is difficult given I have to&amp;nbsp;produce and export so many two months comparison tables.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would there be any way that I could display the same above SAS dataset&amp;nbsp;resutls as&amp;nbsp;a display (just like proc tabulate generate display tables) without having to export to Excel?&lt;/P&gt;&lt;P&gt;Thanks for your expertise.&lt;/P&gt;</description>
    <pubDate>Mon, 21 Aug 2017 17:50:40 GMT</pubDate>
    <dc:creator>dunga</dc:creator>
    <dc:date>2017-08-21T17:50:40Z</dc:date>
    <item>
      <title>Proc tabulate challenge?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389512#M66053</link>
      <description>&lt;P&gt;/*Hi SAS Forum,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have two datasets. One set provides the income of k number of houses in Jun.&lt;/P&gt;&lt;P&gt;Other set provides the income of p number of houses in May.&lt;/P&gt;&lt;P&gt;My question is further down.&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;/*Jun**/&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; Have_Jun;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;input&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; Income;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;cards&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;0&lt;/P&gt;&lt;P&gt;100&lt;/P&gt;&lt;P&gt;105&lt;/P&gt;&lt;P&gt;100&lt;/P&gt;&lt;P&gt;200&lt;/P&gt;&lt;P&gt;300&lt;/P&gt;&lt;P&gt;300&lt;/P&gt;&lt;P&gt;400&lt;/P&gt;&lt;P&gt;500&lt;/P&gt;&lt;P&gt;1000&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*May*/&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; Have_May;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;input&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; Income;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;cards&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;0&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;105&lt;/P&gt;&lt;P&gt;100&lt;/P&gt;&lt;P&gt;199&lt;/P&gt;&lt;P&gt;301&lt;/P&gt;&lt;P&gt;302&lt;/P&gt;&lt;P&gt;400&lt;/P&gt;&lt;P&gt;500&lt;/P&gt;&lt;P&gt;1000&lt;/P&gt;&lt;P&gt;125&lt;/P&gt;&lt;P&gt;305&lt;/P&gt;&lt;P&gt;1200&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;/*Q: I want to generate a proc tabulate table like below (in fact, I have to produce 75 proc tabulate tables for huge datasets).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Income&lt;/TD&gt;&lt;TD&gt;Missing&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;&amp;gt;0-100&lt;/TD&gt;&lt;TD&gt;&amp;gt;100-200&lt;/TD&gt;&lt;TD&gt;&amp;gt;200-300&lt;/TD&gt;&lt;TD&gt;&amp;gt;300-400&lt;/TD&gt;&lt;TD&gt;&amp;gt;400-500&lt;/TD&gt;&lt;TD&gt;&amp;gt;500-1000&lt;/TD&gt;&lt;TD&gt;&amp;gt;1000&lt;/TD&gt;&lt;TD&gt;sum&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jun&lt;/TD&gt;&lt;TD&gt;COUNT&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;PERCENT&lt;/TD&gt;&lt;TD&gt;0.0%&lt;/TD&gt;&lt;TD&gt;10.0%&lt;/TD&gt;&lt;TD&gt;20.0%&lt;/TD&gt;&lt;TD&gt;20.0%&lt;/TD&gt;&lt;TD&gt;20.0%&lt;/TD&gt;&lt;TD&gt;10.0%&lt;/TD&gt;&lt;TD&gt;10.0%&lt;/TD&gt;&lt;TD&gt;10.0%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;May&lt;/TD&gt;&lt;TD&gt;COUNT&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;PERCENT&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;23.08%&lt;/TD&gt;&lt;TD&gt;0.00%&lt;/TD&gt;&lt;TD&gt;30.77%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Diff&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;-7.69%&lt;/TD&gt;&lt;TD&gt;2.31%&lt;/TD&gt;&lt;TD&gt;12.31%&lt;/TD&gt;&lt;TD&gt;-3.08%&lt;/TD&gt;&lt;TD&gt;20.00%&lt;/TD&gt;&lt;TD&gt;-20.77%&lt;/TD&gt;&lt;TD&gt;2.31%&lt;/TD&gt;&lt;TD&gt;2.31%&lt;/TD&gt;&lt;TD&gt;-7.69%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This table simply presents counts of subjects in each income category for June and May separately.&lt;/P&gt;&lt;P&gt;And it presnets total sums separately.&lt;/P&gt;&lt;P&gt;And it presents corresponding perecentages separately.&lt;/P&gt;&lt;P&gt;And it presents difference in percentages between Jun and May in each income category.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*I have done up to this but I cannot handle the proc trabulate part. Would appreciate any help?*/&lt;/P&gt;&lt;P&gt;/*created a format*/&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt;&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;format&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; ;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;value&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; val&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;= &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'Missing'&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;low-&amp;lt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'&amp;lt;0'&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'0'&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;&amp;lt;-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'&amp;gt;0-100'&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;&amp;lt;-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;200&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'&amp;gt;100-200'&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;200&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;&amp;lt;-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;300&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'&amp;gt;200-300'&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;300&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;&amp;lt;-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;400&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'&amp;gt;300-400'&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;400&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;&amp;lt;-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;500&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'&amp;gt;400-500'&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;500&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;&amp;lt;-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1000&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'&amp;gt;500-1000'&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1000&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;&amp;lt;-high = &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'&amp;gt;1000'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*applied the format for Jun*/&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; need_jun;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; have_jun;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;income_category = put (income, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;val.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;Flag=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'Jun'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*applied the format for May*/&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; need_may;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; have_may;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;income_category = put (income, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;val.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;Flag = &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'May'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*concatenate 2 tables together*/&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; want;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; need_may need_jun;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*Apply a proc tabulate*/&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt;&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;TABULATE&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;DATA&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;=want;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;VAR&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; income;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;class&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; income_category flag;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;TABLE&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; flag, income_category, income*N ;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;RUN&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Aug 2017 13:17:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389512#M66053</guid>
      <dc:creator>dunga</dc:creator>
      <dc:date>2017-08-21T13:17:02Z</dc:date>
    </item>
    <item>
      <title>Re: Proc tabulate challenge?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389528#M66056</link>
      <description>&lt;P&gt;If I was right. PROC TABULATE can't do this unstructure summary table.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/*Jun**/
data Have_Jun;
input Income;
cards;
0
100
105
100
200
300
300
400
500
1000
;
run;
 
 
/*May*/
data Have_May;
input Income;
cards;
0
.
105
100
199
301
302
400
500
1000
125
305
1200
;
run;
proc format ;
value val
.= 'Missing'
low-&amp;lt;0 = '&amp;lt;0'
0 = '0'
0&amp;lt;-100 = '&amp;gt;0-100'
100&amp;lt;-200 = '&amp;gt;100-200'
200&amp;lt;-300 = '&amp;gt;200-300'
300&amp;lt;-400 = '&amp;gt;300-400'
400&amp;lt;-500 = '&amp;gt;400-500'
500&amp;lt;-1000 = '&amp;gt;500-1000'
1000&amp;lt;-high = '&amp;gt;1000';

value fmt
 -1&amp;lt;-&amp;lt;1=[percentn7.2];
run;
proc freq data=Have_Jun noprint;
table income/out=jun missing;
format income val.;
run;
proc freq data=Have_May noprint;
table income/out=may missing;
format income val.;
run;

data jun;
 set jun;
 retain month 'Jun    ';
 c_income=put(income,val.);
 percent=percent*0.01;
 format percent percent7.2;
 drop income;
run;
data may;
 set may;
 retain month 'May    ';
 c_income=put(income,val.);
 percent=percent*0.01;
 format percent percent7.2;
 drop income;
run;


options validvarname=any missing=0;
proc transpose data=jun out=t_jun;
by month;
var count percent;
id c_income;
idlabel c_income;
run;
proc transpose data=may out=t_may;
by month;
var count percent;
id c_income;
idlabel c_income;
run;

data dif;
 set  t_may(where=(_NAME_='PERCENT')) t_jun(where=(_NAME_='PERCENT')) end=last;
 retain month 'Dif     ';
 call missing(_name_);
 array x{*} _numeric_;
 do i=1 to dim(x);
  x{i}=sum(x{i},-lag(x{i}));
 end;
 if last;
 drop i;
run;

data want;
retain month
'Missing'n
'&amp;lt;0'n
'0'n
'&amp;gt;0-100'n
'&amp;gt;100-200'n
'&amp;gt;200-300'n
'&amp;gt;300-400'n
'&amp;gt;400-500'n
'&amp;gt;500-1000'n
'&amp;gt;1000'n;
 set t_jun t_may dif;
 format _numeric_ fmt.;
 drop _label_;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 21 Aug 2017 14:11:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389528#M66056</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-08-21T14:11:20Z</dc:date>
    </item>
    <item>
      <title>Re: Proc tabulate challenge?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389536#M66057</link>
      <description>&lt;P&gt;Tabulate will not calculate the difference as shown.&amp;nbsp;Tabulate does no "comparison" of any statistic&lt;/P&gt;
&lt;P&gt;You would also want to clarify what your multiple tables may need to look like. If your time frame goes past two months what type of difference is to be shown? Every two months? First and last across&amp;nbsp;the entire period?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You should also consider order of appearance of the months. You will run into issues with character values for months sorting and appearing in the correct order: Apr is before May and March in character order. And will your data ever cross calendar years? You may be better off with an actual date value to get those to work and align things.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I see this as requiring some summarization and possibly transposition to get all of the elements.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Aug 2017 14:32:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389536#M66057</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-08-21T14:32:39Z</dc:date>
    </item>
    <item>
      <title>Re: Proc tabulate challenge?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389594#M66065</link>
      <description>&lt;P&gt;Hi Ksharp and ballardw,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks very much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ksharp's&amp;nbsp;code is generating the results&amp;nbsp;I expected but in terms of a SAS data set like below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;month&lt;/TD&gt;&lt;TD&gt;Missing&lt;/TD&gt;&lt;TD&gt;&amp;lt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;&amp;gt;0-100&lt;/TD&gt;&lt;TD&gt;&amp;gt;100-200&lt;/TD&gt;&lt;TD&gt;&amp;gt;200-300&lt;/TD&gt;&lt;TD&gt;&amp;gt;300-400&lt;/TD&gt;&lt;TD&gt;&amp;gt;400-500&lt;/TD&gt;&lt;TD&gt;&amp;gt;500-1000&lt;/TD&gt;&lt;TD&gt;&amp;gt;1000&lt;/TD&gt;&lt;TD&gt;_NAME_&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jun&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;COUNT&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jun&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;10.00%&lt;/TD&gt;&lt;TD&gt;20.00%&lt;/TD&gt;&lt;TD&gt;20.00%&lt;/TD&gt;&lt;TD&gt;20.00%&lt;/TD&gt;&lt;TD&gt;10.00%&lt;/TD&gt;&lt;TD&gt;10.00%&lt;/TD&gt;&lt;TD&gt;10.00%&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;PERCENT&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;May&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;COUNT&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;May&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;23.10%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;30.80%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;7.69%&lt;/TD&gt;&lt;TD&gt;PERCENT&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jun&lt;/TD&gt;&lt;TD&gt;-7.69%&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;2.31%&lt;/TD&gt;&lt;TD&gt;12.30%&lt;/TD&gt;&lt;TD&gt;-3.08%&lt;/TD&gt;&lt;TD&gt;20.00%&lt;/TD&gt;&lt;TD&gt;-20.80%&lt;/TD&gt;&lt;TD&gt;2.31%&lt;/TD&gt;&lt;TD&gt;2.31%&lt;/TD&gt;&lt;TD&gt;-7.69%&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To present these resutls I have to export to Excel which is difficult given I have to&amp;nbsp;produce and export so many two months comparison tables.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would there be any way that I could display the same above SAS dataset&amp;nbsp;resutls as&amp;nbsp;a display (just like proc tabulate generate display tables) without having to export to Excel?&lt;/P&gt;&lt;P&gt;Thanks for your expertise.&lt;/P&gt;</description>
      <pubDate>Mon, 21 Aug 2017 17:50:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389594#M66065</guid>
      <dc:creator>dunga</dc:creator>
      <dc:date>2017-08-21T17:50:40Z</dc:date>
    </item>
    <item>
      <title>Re: Proc tabulate challenge?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389782#M66075</link>
      <description>&lt;PRE&gt;
one more thing ,change the order of variables to look the same as your report.

retain month
_NAME_
'Missing'n
'&amp;lt;0'n
'0'n
'&amp;gt;0-100'n
'&amp;gt;100-200'n
'&amp;gt;200-300'n
'&amp;gt;300-400'n
'&amp;gt;400-500'n
'&amp;gt;500-1000'n
'&amp;gt;1000'n;

After that PROC EXPORT can export sas table into Excel file.


About your question, make a macro and CALL EXECUTE() it .
Like:


data x;
input mon $;
cards;
jan
feb
mar
apr
....
;


data _null_;
  set x;
lag_mon=lag(mon);
if _n_ ne 1 then call execute('your-macro-here');
run;




&lt;/PRE&gt;</description>
      <pubDate>Tue, 22 Aug 2017 12:20:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-tabulate-challenge/m-p/389782#M66075</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-08-22T12:20:13Z</dc:date>
    </item>
  </channel>
</rss>

