<?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: An alternative approach using sas datastep or proc in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/415966#M102118</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31304"&gt;@PeterClemmensen&lt;/a&gt;'s data step needs a slight modification:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data outds;
  merge
    History (in=a keep=loan_id month)
    Sample (in=b rename=(month=smonth))
  ;
  by loan_id;
  if a and b;
  if smonth &amp;lt;= month;
  drop smonth;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 24 Nov 2017 09:32:15 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2017-11-24T09:32:15Z</dc:date>
    <item>
      <title>An alternative approach using sas datastep or proc</title>
      <link>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/415942#M102103</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need some help in optimizing my code.&lt;/P&gt;&lt;P&gt;I have two datasets, sample and history. Where the sample contains randomly selected rows from the history file.&lt;/P&gt;&lt;P&gt;Later I want to inner join the sample with history based on some condition.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Sample dataset:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;loan_id month var1 var2 var3&lt;/P&gt;&lt;P&gt;1111&amp;nbsp; 3&amp;nbsp;&amp;nbsp; a1&amp;nbsp; b1 c1&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp; a2&amp;nbsp; b2 c2&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp; a3&amp;nbsp; b3 c3&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp; a4&amp;nbsp; b4 c4&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;History dataset:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;loan_id month var1 var2 var3&lt;/P&gt;&lt;P&gt;1111&amp;nbsp; 3&amp;nbsp;&amp;nbsp; a1&amp;nbsp; b1 c1&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp; a2&amp;nbsp; b2 c2&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;11&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp; a3&amp;nbsp; b3 c3&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;8&amp;nbsp;&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;9&amp;nbsp;&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp; a4&amp;nbsp; b4 c4&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;output dataset:&lt;/P&gt;&lt;P&gt;1111&amp;nbsp; 3&amp;nbsp;&amp;nbsp;a1&amp;nbsp; b1 c1&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;a1&amp;nbsp; b1 c1&amp;nbsp;&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;a1&amp;nbsp; b1 c1&amp;nbsp;&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp;a2&amp;nbsp; b2 c2&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp;a2&amp;nbsp; b2 c2&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;10&amp;nbsp;a2&amp;nbsp; b2 c2&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;11&amp;nbsp;a2&amp;nbsp; b2 c2&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;a3&amp;nbsp; b3 c3&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;6&amp;nbsp; a3&amp;nbsp; b3 c3&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;7&amp;nbsp; a3&amp;nbsp; b3 c3&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;8&amp;nbsp; a3&amp;nbsp; b3 c3&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;9&amp;nbsp; a3&amp;nbsp; b3 c3&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;a4&amp;nbsp; b4 c4&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;a4&amp;nbsp; b4 c4&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;a4&amp;nbsp; b4 c4&amp;nbsp;&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;a4&amp;nbsp; b4 c4&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp;a4&amp;nbsp; b4 c4&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The main aim is to get all the month records from history dataset, but retain the values of var1, var2, var3 from the sample dataset itself. I have achieved this through proc sql. my code is below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table outds as&lt;/P&gt;&lt;P&gt;select a.loan_id, a.var1, a.var2, a.var3, b.month&lt;/P&gt;&lt;P&gt;from sample a, history b&lt;/P&gt;&lt;P&gt;where a.loan_id = b.loan_id&lt;/P&gt;&lt;P&gt;and a.month &amp;lt;= b.month&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to optimize this, if there is any alternative way to do this in sas datastep or any other procedure in sas, as I am planning to do further analysis on the sample.&lt;/P&gt;&lt;P&gt;Please help me with this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&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;</description>
      <pubDate>Fri, 24 Nov 2017 07:54:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/415942#M102103</guid>
      <dc:creator>UshaLatha</dc:creator>
      <dc:date>2017-11-24T07:54:49Z</dc:date>
    </item>
    <item>
      <title>Re: An alternative approach using sas datastep or proc</title>
      <link>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/415944#M102104</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Sample;
input loan_id$ month var1$ var2$ var3$;
datalines;
1111 3 a1 b1 c1
2222 8 a2 b2 c2
3333 5 a3 b3 c3
4444 2 a4 b4 c4
;

data History;
input loan_id$ month var1$ var2$ var3$;
infile datalines truncover;
datalines;
1111 3 a1 b1 c1
1111 4
1111 5
2222 8 a2 b2 c2
2222 9 
2222 10
2222 11
3333 5 a3 b3 c3
3333 6
3333 7
3333 8
3333 9
4444 2 a4 b4 c4
4444 3
4444 4
4444 5
4444 6
;

proc sort data=sample; by loan_id; run;
proc sort data=History; by loan_id; run;

data outds;
	merge History(keep=loan_id month) Sample;
	by loan_id;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 24 Nov 2017 08:19:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/415944#M102104</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2017-11-24T08:19:13Z</dc:date>
    </item>
    <item>
      <title>Re: An alternative approach using sas datastep or proc</title>
      <link>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/415953#M102111</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I forgot to add scenario where the starting month may not be same in history and sample. That was the reason I was joining on month (a.month &amp;lt;= b.month)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also the history may have many more variables... but I want to retain only var1, var2, var3&lt;/P&gt;&lt;P&gt;Eg:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;History dataset:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;loan_id month var1 var2 var3 var4 var5 var6&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;1 l r y u d a f&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;2 f y e t s g&lt;/P&gt;&lt;P&gt;1111&amp;nbsp; 3&amp;nbsp;&amp;nbsp; a1&amp;nbsp; b1 c1 x y z&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;p q r s t u&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp; e f g h&amp;nbsp;i j&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp; k l m n o p&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp; a2&amp;nbsp; b2 c2 x y z&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;11&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp; a3&amp;nbsp; b3 c3 x y z&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;8&amp;nbsp;&lt;/P&gt;&lt;P&gt;3333&amp;nbsp;&amp;nbsp;9&amp;nbsp;&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;1&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp; a4&amp;nbsp; b4 c4 x y z&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4444&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The output should be:&lt;/P&gt;&lt;P&gt;loan_id month var1 var2 var3 var4 var5 var6&lt;/P&gt;&lt;P&gt;1111&amp;nbsp; 3&amp;nbsp;&amp;nbsp; a1&amp;nbsp; b1 c1 x y z&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;a1&amp;nbsp; b1 c1 s t u&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp; a1&amp;nbsp; b1 c1 h&amp;nbsp;i j&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp; a1&amp;nbsp; b1 c1 n o p&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp; a2&amp;nbsp; b2 c2 x y z&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp; a2&amp;nbsp; b2 c2&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;a2&amp;nbsp; b2 c2&lt;/P&gt;&lt;P&gt;2222&amp;nbsp;&amp;nbsp;11&amp;nbsp;&amp;nbsp;a2&amp;nbsp; b2 c2&lt;/P&gt;&lt;P&gt;so on....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In your merge statement contains only loan_id. This may not give same results...&lt;/P&gt;</description>
      <pubDate>Fri, 24 Nov 2017 09:10:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/415953#M102111</guid>
      <dc:creator>UshaLatha</dc:creator>
      <dc:date>2017-11-24T09:10:05Z</dc:date>
    </item>
    <item>
      <title>Re: An alternative approach using sas datastep or proc</title>
      <link>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/415966#M102118</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31304"&gt;@PeterClemmensen&lt;/a&gt;'s data step needs a slight modification:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data outds;
  merge
    History (in=a keep=loan_id month)
    Sample (in=b rename=(month=smonth))
  ;
  by loan_id;
  if a and b;
  if smonth &amp;lt;= month;
  drop smonth;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 24 Nov 2017 09:32:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/415966#M102118</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2017-11-24T09:32:15Z</dc:date>
    </item>
    <item>
      <title>Re: An alternative approach using sas datastep or proc</title>
      <link>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/416779#M102356</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Since we are not using month in the by statement, few records are being dropped.&lt;/P&gt;&lt;P&gt;The counts are not matching with proc sql results.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Nov 2017 17:36:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/416779#M102356</guid>
      <dc:creator>UshaLatha</dc:creator>
      <dc:date>2017-11-28T17:36:26Z</dc:date>
    </item>
    <item>
      <title>Re: An alternative approach using sas datastep or proc</title>
      <link>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/416972#M102407</link>
      <description>&lt;P&gt;Post your exact data in a data step (see &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31304"&gt;@PeterClemmensen&lt;/a&gt;'s example) and the sql you run against it. Use code posting windows, as described &lt;A href="https://communities.sas.com/t5/help/faqpage/faq-category-id/posting?nobounce" target="_blank"&gt;here&lt;/A&gt;, so that the code can easily be copy/pasted.&lt;/P&gt;</description>
      <pubDate>Wed, 29 Nov 2017 07:09:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/An-alternative-approach-using-sas-datastep-or-proc/m-p/416972#M102407</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2017-11-29T07:09:22Z</dc:date>
    </item>
  </channel>
</rss>

