<?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 Matching observations by ID and date in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Matching-observations-by-ID-and-date/m-p/611497#M178221</link>
    <description>&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can someone guide me how to match different rows of data by ID and date? Below is an example.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what I have:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Med&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Date&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/10/10&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1/10/10&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3/10/10&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4/15/15&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4/15/15&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what I want:&lt;/P&gt;&lt;P&gt;ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Med &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Date&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A+B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/10/10&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3/10/10&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B+C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4/15/15&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So since ID #1 received both A and B on the same date, I want to consolidate that into one row. And similarly since ID # 2 received B and C on the same date, trying to consolidate that into one row.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any tips?&lt;/P&gt;</description>
    <pubDate>Fri, 13 Dec 2019 01:51:19 GMT</pubDate>
    <dc:creator>SarahW13</dc:creator>
    <dc:date>2019-12-13T01:51:19Z</dc:date>
    <item>
      <title>Matching observations by ID and date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Matching-observations-by-ID-and-date/m-p/611497#M178221</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can someone guide me how to match different rows of data by ID and date? Below is an example.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what I have:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Med&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Date&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/10/10&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1/10/10&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3/10/10&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4/15/15&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4/15/15&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what I want:&lt;/P&gt;&lt;P&gt;ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Med &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Date&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A+B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/10/10&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3/10/10&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B+C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4/15/15&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So since ID #1 received both A and B on the same date, I want to consolidate that into one row. And similarly since ID # 2 received B and C on the same date, trying to consolidate that into one row.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any tips?&lt;/P&gt;</description>
      <pubDate>Fri, 13 Dec 2019 01:51:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Matching-observations-by-ID-and-date/m-p/611497#M178221</guid>
      <dc:creator>SarahW13</dc:creator>
      <dc:date>2019-12-13T01:51:19Z</dc:date>
    </item>
    <item>
      <title>Re: Matching observations by ID and date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Matching-observations-by-ID-and-date/m-p/611500#M178223</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;SarahW13&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How about this code?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data sample;
  infile datalines dlm=' ';
  length id 8 med $10 date $10;/* assign med length as necessary */
  input id med $ date $;
  key=catx('-',id,date);
datalines;
1 A 1/10/10
1 B 1/10/10
1 C 3/10/10
2 B 4/15/15
2 C 4/15/15
;
run;

proc sort data=sample;
  by key;
run;
data output;
  length med2 $10;/* assign med2 length as necessary */
  set sample;
  by key;
  retain med2;
  if first.key then med2='';
  else med=catx('+',med2,med); 
  med2=med;
  if last.key;
  drop med2 key;
run;

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Dec 2019 02:19:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Matching-observations-by-ID-and-date/m-p/611500#M178223</guid>
      <dc:creator>japelin</dc:creator>
      <dc:date>2019-12-13T02:19:26Z</dc:date>
    </item>
    <item>
      <title>Re: Matching observations by ID and date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Matching-observations-by-ID-and-date/m-p/611502#M178225</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input ID          Med $           Date :$10.;
cards;
1            A                 1/10/10
1            B                 1/10/10
1            C                 3/10/10
2            B                 4/15/15
2            C                 4/15/15
;

data want;
 do until(last.date);
  set have;
  by id date;
  length _med $20;
  _med=catx('+',_med,med);
 end;
 drop med;
run;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 13 Dec 2019 02:32:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Matching-observations-by-ID-and-date/m-p/611502#M178225</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-12-13T02:32:26Z</dc:date>
    </item>
    <item>
      <title>Re: Matching observations by ID and date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Matching-observations-by-ID-and-date/m-p/611505#M178227</link>
      <description>&lt;P&gt;*Sort by ID and Date;&lt;/P&gt;&lt;P&gt;proc sort data = have;&lt;/P&gt;&lt;P&gt;by ID Date;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* Use RETAIN to accumulate Med by ID and Date;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;length med_add $6;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;by ID Date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;retain med_add;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* Take care of records that only occur once, e.g., obs # 3 */&lt;/P&gt;&lt;P&gt;if first.Date &amp;amp; last.Date then med_add = Med;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* Else if not the 1st &amp;amp; last date for that ID, RETAIN 1st value of 'Med' */&lt;/P&gt;&lt;P&gt;else if first.date then med_add = med;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* Use CATX (concatenate) to add to the RETAINed variable */&lt;/P&gt;&lt;P&gt;else do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;if med_add ^= med then med_add = catx(' + ',med_add,med);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* When last.Date is equal to '1', then output */&lt;/P&gt;&lt;P&gt;if last.date;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;if&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Dec 2019 02:45:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Matching-observations-by-ID-and-date/m-p/611505#M178227</guid>
      <dc:creator>BrianB4233</dc:creator>
      <dc:date>2019-12-13T02:45:55Z</dc:date>
    </item>
  </channel>
</rss>

