<?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: Merge observations based on age being less than or equal to in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522375#M141799</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/182623"&gt;@MB_Analyst&lt;/a&gt;&amp;nbsp; Should my &lt;STRONG&gt;understanding&lt;/STRONG&gt; and &lt;STRONG&gt;assumption&lt;/STRONG&gt; be correct,&amp;nbsp; it's pretty straight forward--&amp;gt;&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 master;
    INPUT ID age age_class;
DATALINES;
1 30 0 
1 40 1
1 42 2 
2 25 1 
2 36 2
;

DATA records;
    INPUT ID age_record varx $;
DATALINES;
1 21 a
1 22 b
1 31 c 
1 32 d
1 32 e
1 41 f
2 30 a 
2 32 b
2 34 c
;

proc sql;
create table want(drop=dif ) as
select a.*,age_class,ifn(age-age_record&amp;lt;0,.,age-age_record) as dif
from records a left join  master b
on a.id=b.id  and age_record&amp;lt;=age
group by a.id,age_record
having min(dif)=dif
order by a.id,age_record;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 18 Dec 2018 23:07:00 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2018-12-18T23:07:00Z</dc:date>
    <item>
      <title>Merge observations based on age being less than or equal to</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522343#M141790</link>
      <description>&lt;P&gt;I have two datasets:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA master;
    INPUT ID age age_class;
DATALINES;
1 30 0 
1 40 1
1 42 2 
2 25 1 
2 36 2
;

DATA records;
    INPUT ID age_record;
DATALINES;
1 21 
1 22 
1 31 
1 32 
1 41 
2 30  
2 32 
2 34 
;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to merge the age_class of master datafile into the records datafile based on ID and age_record being less than or equal to age.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The final dataset should look like:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID&amp;nbsp; &amp;nbsp; age_record&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;age_class&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 21&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 22&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 32&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 41&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 32&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 34&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Dec 2018 23:21:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522343#M141790</guid>
      <dc:creator>MB_Analyst</dc:creator>
      <dc:date>2018-12-18T23:21:23Z</dc:date>
    </item>
    <item>
      <title>Re: Merge observations based on age being less than or equal to</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522352#M141792</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/182623"&gt;@MB_Analyst&lt;/a&gt;&amp;nbsp; Can you please elaborate the logic to make us understand better?&lt;/P&gt;</description>
      <pubDate>Tue, 18 Dec 2018 21:59:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522352#M141792</guid>
      <dc:creator>Andygray</dc:creator>
      <dc:date>2018-12-18T21:59:50Z</dc:date>
    </item>
    <item>
      <title>Re: Merge observations based on age being less than or equal to</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522359#M141793</link>
      <description>&lt;P&gt;My end goal is to count the number of&amp;nbsp;records for each person by ID and age_class. I will try to create a picture&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Imagine we want to count the number of logins up until a point of time&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Person One, where t=age or time&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;-------&amp;gt;age_record=21---------&amp;gt;age_record=22---------&amp;gt; age_class=0&amp;amp; age=30&amp;nbsp;&lt;/FONT&gt;&lt;FONT color="#0000FF"&gt;--------&amp;gt;&lt;SPAN&gt;age_record&lt;/SPAN&gt;=31--------&amp;gt;&lt;SPAN&gt;age_record&lt;/SPAN&gt;=32----&amp;gt;a&lt;SPAN&gt;ge_class=1&amp;amp; age=40&lt;/SPAN&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;login&amp;nbsp; &amp;nbsp; &amp;nbsp; age_class&lt;/P&gt;&lt;P&gt;21&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;&lt;P&gt;22&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;&lt;P&gt;31&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;&lt;P&gt;32&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does that make things more or less clear?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Dec 2018 23:13:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522359#M141793</guid>
      <dc:creator>MB_Analyst</dc:creator>
      <dc:date>2018-12-18T23:13:10Z</dc:date>
    </item>
    <item>
      <title>Re: Merge observations based on age being less than or equal to</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522363#M141794</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/182623"&gt;@MB_Analyst&lt;/a&gt;&amp;nbsp; Wouldn't the ageclass be 2 for 30 and 32?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30&amp;nbsp; &amp;nbsp; &amp;nbsp; &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;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 32&amp;nbsp; &amp;nbsp; &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; &amp;nbsp; .&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 34&amp;nbsp; &amp;nbsp; &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; 2&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Considering all fall below 36&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And there is no obs&amp;nbsp;&lt;SPAN&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 32&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp;in your original sample, but is there in output. Would be nice if you could correct the needful&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Dec 2018 22:47:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522363#M141794</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-12-18T22:47:11Z</dc:date>
    </item>
    <item>
      <title>Re: Merge observations based on age being less than or equal to</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522375#M141799</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/182623"&gt;@MB_Analyst&lt;/a&gt;&amp;nbsp; Should my &lt;STRONG&gt;understanding&lt;/STRONG&gt; and &lt;STRONG&gt;assumption&lt;/STRONG&gt; be correct,&amp;nbsp; it's pretty straight forward--&amp;gt;&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 master;
    INPUT ID age age_class;
DATALINES;
1 30 0 
1 40 1
1 42 2 
2 25 1 
2 36 2
;

DATA records;
    INPUT ID age_record varx $;
DATALINES;
1 21 a
1 22 b
1 31 c 
1 32 d
1 32 e
1 41 f
2 30 a 
2 32 b
2 34 c
;

proc sql;
create table want(drop=dif ) as
select a.*,age_class,ifn(age-age_record&amp;lt;0,.,age-age_record) as dif
from records a left join  master b
on a.id=b.id  and age_record&amp;lt;=age
group by a.id,age_record
having min(dif)=dif
order by a.id,age_record;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 18 Dec 2018 23:07:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522375#M141799</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-12-18T23:07:00Z</dc:date>
    </item>
    <item>
      <title>Re: Merge observations based on age being less than or equal to</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522380#M141803</link>
      <description>I edited the question and my posts to be more clear. Thank you</description>
      <pubDate>Tue, 18 Dec 2018 23:20:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-observations-based-on-age-being-less-than-or-equal-to/m-p/522380#M141803</guid>
      <dc:creator>MB_Analyst</dc:creator>
      <dc:date>2018-12-18T23:20:15Z</dc:date>
    </item>
  </channel>
</rss>

