<?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: A tricky Merge (well tricky for me at least) in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/555440#M154571</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;







data have1;
input studyID Var1 ;
cards;
1 1
1 1
1 1
2 0
2 0
2 0
2 0
2 0
3 1
3 1
4 0 
5 0
5 0
5 0
5 0
run;

data have2;
input studyID var2;
cards;
1 23
2 42
3 12
4 22
5 56
;
run;


data want;
merge have1 have2;
by studyid;
if not first.studyid then var2=0;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 01 May 2019 18:36:46 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2019-05-01T18:36:46Z</dc:date>
    <item>
      <title>A tricky Merge (well tricky for me at least)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/555439#M154570</link>
      <description>&lt;P&gt;Hi All,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have 2 datasets that look something like this:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have1;
input studyID Var1 ;
cards;
1 1
1 1
1 1
2 0
2 0
2 0
2 0
2 0
3 1
3 1
4 0 
5 0
5 0
5 0
5 0
run;

data have2;
input studyID var2;
cards;
1 23
2 42
3 12
4 22
5 56

run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;what I want to do is merge the two datasets, but only keep the Var2 variable for the first record for each studyID with zeros for the rest.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So the "want" dataset would look like:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
input studyID var1 var2 ;
cards;
1 1 23
1 1 0
1 1 0
2 0 42
2 0 0
2 0 0 
2 0 0
2 0 0
3 1 12
3 1 0
4 0 22
5 0 56
5 0 0
5 0 0
5 0 0 
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;For context - Var 2 is an exposure variable that represents the total exposure for each studyID. I can get it so that every record for the same study ID has the same value, but it causes issues when I try to sum var2 to get the total exposure for the whole dataset.&amp;nbsp;&lt;/P&gt;&lt;P&gt;for example:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The total exposure time for the above dataset should be 23+42+12+22+56 = 155&lt;/P&gt;&lt;P&gt;but if I have the var2 value on each instance of a studyid, thenI get - 23(3)+42(5)+12(2)+22+56(4) = 549&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As always any help/thoughts would be much appreciated&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mike&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 May 2019 18:31:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/555439#M154570</guid>
      <dc:creator>righcoastmike</dc:creator>
      <dc:date>2019-05-01T18:31:39Z</dc:date>
    </item>
    <item>
      <title>Re: A tricky Merge (well tricky for me at least)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/555440#M154571</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;







data have1;
input studyID Var1 ;
cards;
1 1
1 1
1 1
2 0
2 0
2 0
2 0
2 0
3 1
3 1
4 0 
5 0
5 0
5 0
5 0
run;

data have2;
input studyID var2;
cards;
1 23
2 42
3 12
4 22
5 56
;
run;


data want;
merge have1 have2;
by studyid;
if not first.studyid then var2=0;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 01 May 2019 18:36:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/555440#M154571</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-05-01T18:36:46Z</dc:date>
    </item>
    <item>
      <title>Re: A tricky Merge (well tricky for me at least)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/555448#M154576</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;&amp;nbsp; for the win (again!)&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks so much.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mike&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 May 2019 19:01:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/555448#M154576</guid>
      <dc:creator>righcoastmike</dc:creator>
      <dc:date>2019-05-01T19:01:24Z</dc:date>
    </item>
    <item>
      <title>Re: A tricky Merge (well tricky for me at least)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/560633#M156825</link>
      <description>and kind of like the Belmont Stakes this year. ?::O)</description>
      <pubDate>Tue, 21 May 2019 19:55:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/560633#M156825</guid>
      <dc:creator>ccaulkins9</dc:creator>
      <dc:date>2019-05-21T19:55:53Z</dc:date>
    </item>
    <item>
      <title>Re: A tricky Merge (well tricky for me at least)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/562013#M157399</link>
      <description>I'm wondering is there a way to do this with pure SQL i.e. using a proc sql statement?</description>
      <pubDate>Tue, 28 May 2019 16:45:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/562013#M157399</guid>
      <dc:creator>ccaulkins9</dc:creator>
      <dc:date>2019-05-28T16:45:00Z</dc:date>
    </item>
    <item>
      <title>Re: A tricky Merge (well tricky for me at least)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/562130#M157447</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/118308"&gt;@ccaulkins9&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have1;
input studyID Var1 ;
cards;
1 1
1 1
1 1
2 0
2 0
2 0
2 0
2 0
3 1
3 1
4 0 
5 0
5 0
5 0
5 0
run;

data have2;
input studyID var2;
cards;
1 23
2 42
3 12
4 22
5 56
;
run;

proc sql;
create table want(drop=rn) as
select a.*,ifn(min(rn)=rn,var2,0) as var2
from (select *,monotonic() as rn from have1) a full join have2	b
on a.studyid=b.studyid
group by a.studyid
order by studyid, rn;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;However, not recommending the above to be implemented as production code as datastep is faster and straight forward&lt;/P&gt;</description>
      <pubDate>Wed, 29 May 2019 00:36:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/562130#M157447</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-05-29T00:36:13Z</dc:date>
    </item>
    <item>
      <title>Re: A tricky Merge (well tricky for me at least)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/562613#M157622</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;, I think you could improve the SQL query like so:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token procnames"&gt;proc&lt;/SPAN&gt; &lt;SPAN class="token procnames"&gt;sql&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;BR /&gt;create &lt;SPAN class="token statement"&gt;table&lt;/SPAN&gt; want as &lt;SPAN class="token punctuation"&gt;/*(&lt;/SPAN&gt;&lt;SPAN class="token keyword"&gt;drop&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;rn&lt;SPAN class="token punctuation"&gt;)*/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="token statement"&gt;select&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;a&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;studyID, a.Var1,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token function"&gt;/*ifn&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;min&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;rn&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=a.&lt;/SPAN&gt;rn&lt;SPAN class="token punctuation"&gt;,b.&lt;/SPAN&gt;var2&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;/*I'm getting confused as to&lt;/P&gt;&lt;P&gt;what the initial intent was but&lt;/P&gt;&lt;P&gt;I'll come back to&lt;/P&gt;&lt;P&gt;this&amp;nbsp;Var2 selecting&amp;nbsp;later*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token keyword"&gt;from&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token statement"&gt;select&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token operator"&gt;studyid, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token operator"&gt;var1&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;monotonic&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; as rn &lt;SPAN class="token keyword"&gt;from&lt;/SPAN&gt; have1&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; a /*var1_table*/,&lt;/P&gt;&lt;P&gt;have2 b /*var2_table*/&lt;BR /&gt;where a&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;studyid&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;b&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;studyid&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token keyword"&gt;group&lt;/SPAN&gt; &lt;SPAN class="token statement"&gt;by&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;a&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;studyid&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;order &lt;SPAN class="token statement"&gt;by&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;studyid&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;rn&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token procnames"&gt;quit&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 30 May 2019 16:12:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-tricky-Merge-well-tricky-for-me-at-least/m-p/562613#M157622</guid>
      <dc:creator>ccaulkins9</dc:creator>
      <dc:date>2019-05-30T16:12:59Z</dc:date>
    </item>
  </channel>
</rss>

