<?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: Collapsing and Reshaping in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714023#M220371</link>
    <description>&lt;P&gt;Are there ever more than 2 Adate values for a single ID / Report date combination?&lt;/P&gt;
&lt;P&gt;Does Name actually play a role in this?You show two different name values for Id=3.&lt;/P&gt;
&lt;P&gt;Will MATCH be exactly the same all the values to collapse? If not you need to provide some more rules/ examples.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Are your date variables actual SAS numeric values with a date format attached or character?&lt;/P&gt;</description>
    <pubDate>Mon, 25 Jan 2021 19:03:18 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2021-01-25T19:03:18Z</dc:date>
    <item>
      <title>Collapsing and Reshaping</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714018#M220368</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;
&lt;P&gt;Here is the data i have been working on. I tried to use transpose and reshape and it did not work. I would like to collapse the ADATE variable into pre and post and have their corresponding Prediff and PostDiff variables.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data Have:&lt;/P&gt;
&lt;TABLE width="543"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;ID&lt;/TD&gt;
&lt;TD width="64"&gt;Name&lt;/TD&gt;
&lt;TD width="78"&gt;ReportDate&lt;/TD&gt;
&lt;TD width="64"&gt;Match&lt;/TD&gt;
&lt;TD width="75"&gt;ADATE&lt;/TD&gt;
&lt;TD width="75"&gt;Generic&lt;/TD&gt;
&lt;TD width="64"&gt;Prediff&lt;/TD&gt;
&lt;TD width="59"&gt;Postdiff&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;9/27/2016&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&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;3&lt;/TD&gt;
&lt;TD&gt;TE&lt;/TD&gt;
&lt;TD&gt;10/26/2016&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&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;3&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;10/26/2016&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;11/25/2016&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;29.10&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;11/18/2016&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;8/16/2015&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;-460.797&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;11/18/2016&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;1/14/2017&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;56.20&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;2/18/2017&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;3/10/2017&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;19.38&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;2/21/2017&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;3/7/2017&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;13.31&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;2/21/2017&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;2/21/2017&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;-0.68&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;4/17/2017&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;4/24/2017&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;6.136&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;4/17/2017&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;4/15/2017&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;-2.86&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;Data Want:&lt;/P&gt;
&lt;TABLE width="607"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;ID&lt;/TD&gt;
&lt;TD width="64"&gt;Name&lt;/TD&gt;
&lt;TD width="78"&gt;ReportDate&lt;/TD&gt;
&lt;TD width="64"&gt;Match&lt;/TD&gt;
&lt;TD width="75"&gt;ADATE_pre&lt;/TD&gt;
&lt;TD width="75"&gt;ADATE_Post&lt;/TD&gt;
&lt;TD width="64"&gt;Generic&lt;/TD&gt;
&lt;TD width="59"&gt;Prediff&lt;/TD&gt;
&lt;TD width="64"&gt;Postdiff&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;9/27/2016&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&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;3&lt;/TD&gt;
&lt;TD&gt;TE&lt;/TD&gt;
&lt;TD&gt;10/26/2016&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&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;3&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;10/26/2016&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;11/25/2016&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;29.10&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;11/18/2016&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;8/16/2015&lt;/TD&gt;
&lt;TD&gt;1/14/2017&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;-460.79&lt;/TD&gt;
&lt;TD&gt;56.2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;2/18/2017&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;3/10/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;19.38&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;2/21/2017&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;3/7/2017&lt;/TD&gt;
&lt;TD&gt;2/21/2017&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;-0.68&lt;/TD&gt;
&lt;TD&gt;13.3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;TP&lt;/TD&gt;
&lt;TD&gt;4/17/2017&lt;/TD&gt;
&lt;TD&gt;A,B&lt;/TD&gt;
&lt;TD&gt;4/15/2017&lt;/TD&gt;
&lt;TD&gt;4/24/2017&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;-2.86&lt;/TD&gt;
&lt;TD&gt;6.136&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Mon, 25 Jan 2021 18:51:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714018#M220368</guid>
      <dc:creator>newsas007</dc:creator>
      <dc:date>2021-01-25T18:51:14Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing and Reshaping</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714023#M220371</link>
      <description>&lt;P&gt;Are there ever more than 2 Adate values for a single ID / Report date combination?&lt;/P&gt;
&lt;P&gt;Does Name actually play a role in this?You show two different name values for Id=3.&lt;/P&gt;
&lt;P&gt;Will MATCH be exactly the same all the values to collapse? If not you need to provide some more rules/ examples.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Are your date variables actual SAS numeric values with a date format attached or character?&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jan 2021 19:03:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714023#M220371</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2021-01-25T19:03:18Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing and Reshaping</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714025#M220372</link>
      <description>No there are no more than 2 ADate Values for Single ID/Report Date.&lt;BR /&gt;There are several Name categories but the name shouldn't play a role in this.&lt;BR /&gt;Match will be for the values and will not change. &lt;BR /&gt;The dates are in SAS numeric values</description>
      <pubDate>Mon, 25 Jan 2021 19:15:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714025#M220372</guid>
      <dc:creator>newsas007</dc:creator>
      <dc:date>2021-01-25T19:15:30Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing and Reshaping</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714027#M220374</link>
      <description>&lt;P&gt;I think this captures all the logic.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID Name $ ReportDate :mmddyy10. Match $ ADATE :mmddyy10. Generic $ Prediff Postdiff;
infile datalines dlm = '|';
format ReportDate ADATE mmddyy10.;
datalines;
1|TP|9/27/2016 |A,B|          | |        |
3|TE|10/26/2016|   |          | |        |
3|TP|10/26/2016|A,B|11/25/2016|A|        |29.10
4|TP|11/18/2016|A,B|8/16/2015 |A|-460.797| 
4|TP|11/18/2016|A,B|1/14/2017 |A|        |56.20
7|TP|2/18/2017 |A,B|3/10/2017 |A|        |19.38
8|TP|2/21/2017 |A,B|3/7/2017  |A|        |13.31
8|TP|2/21/2017 |A,B|2/21/2017 |A|-0.68   |
9|TP|4/17/2017 |A,B|4/24/2017 |A|        |6.136
9|TP|4/17/2017 |A,B|4/15/2017 |A|-2.86   |
;

data want(drop = pre post ADATE);
   format ID Name ReportDate Match ADATE_pre ADATE_Post Generic Prediff Postdiff;
   do until (last.Name);
      set have;
      by ID Name;
      if last.Name                   then ADATE_pre  = ADATE;
      if first.Name &amp;amp; not last.Name  then ADATE_post = ADATE;
      post = max(post, Postdiff);
      pre = max(pre, Prediff);
   end;
   Prediff = pre;
   Postdiff = post;
   format ADATE_pre ADATE_post mmddyy10.;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;ID  Name  ReportDate  Match  ADATE_pre   ADATE_Post    Generic  Prediff   Postdiff 
1   TP    09/27/2016  A,B    .           .                      .         . 
3   TE    10/26/2016         .           .                      .         . 
3   TP    10/26/2016  A,B    11/25/2016  .             A        .         29.100 
4   TP    11/18/2016  A,B    01/14/2017  08/16/2015    A        -460.797  56.200 
7   TP    02/18/2017  A,B    03/10/2017  .             A        .         19.380 
8   TP    02/21/2017  A,B    02/21/2017  03/07/2017    A        -0.680    13.310 
9   TP    04/17/2017  A,B    04/15/2017  04/24/2017    A        -2.860    6.136 &lt;/PRE&gt;</description>
      <pubDate>Mon, 25 Jan 2021 19:24:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714027#M220374</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2021-01-25T19:24:54Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing and Reshaping</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714046#M220382</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/336862"&gt;@newsas007&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;No there are no more than 2 ADate Values for Single ID/Report Date.&lt;BR /&gt;There are several Name categories but the name shouldn't play a role in this.&lt;BR /&gt;Match will be for the values and will not change. &lt;BR /&gt;The dates are in SAS numeric values&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Then you need to provide examples with more Adate values and what the result would be. Very likely you will also have to provide one or more rules about why which date becomes the Pre and Post date and how the Pre and Post Diff values are determined.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jan 2021 20:11:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapsing-and-Reshaping/m-p/714046#M220382</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2021-01-25T20:11:55Z</dc:date>
    </item>
  </channel>
</rss>

