<?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 Merging data sets that have different range for 'by variable' in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Merging-data-sets-that-have-different-range-for-by-variable/m-p/86109#M289109</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to merge two data sets, but they have different range in dates and port_no (my class variables, i think that's what they're called). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The two data sets I have are: have1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Date&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; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ret&lt;/P&gt;&lt;P&gt;011980&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; 3424&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.4&lt;/P&gt;&lt;P&gt;021980&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; 3543&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;&amp;nbsp; 4.3&lt;/P&gt;&lt;P&gt;031980&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; 432&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;121980&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; 4332&lt;/P&gt;&lt;P&gt;011981&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;&amp;nbsp; 423&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;112011&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And the other one is the yearly one, have2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Date&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; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value&lt;/P&gt;&lt;P&gt;1979&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 432&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; 4.2&lt;/P&gt;&lt;P&gt;1980&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4332&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;1981&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 423&lt;/P&gt;&lt;P&gt;1979&lt;/P&gt;&lt;P&gt;1980&lt;/P&gt;&lt;P&gt;1981&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;2011&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I want to merge have1 and have2. I want them to be monthly data, so I think, first, i need to convert have2 into monthly data assigning equal Value to each month for that year. I tried to use Proc Expand, but it didn't work.&lt;/P&gt;&lt;P&gt;And then I want to merge the two, only if the Identifier in have2 also exists in have1. I don't want data's of Identifier that are not in have1. I tried this with the regular Merge, and thought about deleting the observation of Identifiers not in original have1, but that messed up my data and couldn't do it. &lt;/P&gt;&lt;P&gt;Anyway around it? Thanks everyone.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 17 Apr 2012 12:03:50 GMT</pubDate>
    <dc:creator>sharmas</dc:creator>
    <dc:date>2012-04-17T12:03:50Z</dc:date>
    <item>
      <title>Merging data sets that have different range for 'by variable'</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merging-data-sets-that-have-different-range-for-by-variable/m-p/86109#M289109</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to merge two data sets, but they have different range in dates and port_no (my class variables, i think that's what they're called). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The two data sets I have are: have1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Date&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; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ret&lt;/P&gt;&lt;P&gt;011980&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; 3424&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.4&lt;/P&gt;&lt;P&gt;021980&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; 3543&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;&amp;nbsp; 4.3&lt;/P&gt;&lt;P&gt;031980&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; 432&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;121980&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; 4332&lt;/P&gt;&lt;P&gt;011981&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;&amp;nbsp; 423&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;112011&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And the other one is the yearly one, have2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Date&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; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value&lt;/P&gt;&lt;P&gt;1979&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 432&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; 4.2&lt;/P&gt;&lt;P&gt;1980&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4332&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;1981&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 423&lt;/P&gt;&lt;P&gt;1979&lt;/P&gt;&lt;P&gt;1980&lt;/P&gt;&lt;P&gt;1981&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;2011&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I want to merge have1 and have2. I want them to be monthly data, so I think, first, i need to convert have2 into monthly data assigning equal Value to each month for that year. I tried to use Proc Expand, but it didn't work.&lt;/P&gt;&lt;P&gt;And then I want to merge the two, only if the Identifier in have2 also exists in have1. I don't want data's of Identifier that are not in have1. I tried this with the regular Merge, and thought about deleting the observation of Identifiers not in original have1, but that messed up my data and couldn't do it. &lt;/P&gt;&lt;P&gt;Anyway around it? Thanks everyone.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Apr 2012 12:03:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merging-data-sets-that-have-different-range-for-by-variable/m-p/86109#M289109</guid>
      <dc:creator>sharmas</dc:creator>
      <dc:date>2012-04-17T12:03:50Z</dc:date>
    </item>
    <item>
      <title>Re: Merging data sets that have different range for 'by variable'</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merging-data-sets-that-have-different-range-for-by-variable/m-p/86110#M289110</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data have1;&lt;BR /&gt;input Date Identifier Value;&lt;BR /&gt;cards;&lt;BR /&gt;011980 3424 2.4&lt;BR /&gt;021980 3543 4.3&lt;BR /&gt;031980 432&amp;nbsp; 5.5&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=have1 tagsort;&lt;BR /&gt;by Identifier;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data have2;&lt;BR /&gt;input Date Identifier Value;by date;&lt;BR /&gt;cards;&lt;BR /&gt;1979 432&amp;nbsp; 4.2&lt;BR /&gt;1980 4332 1.2&lt;BR /&gt;1981 423&amp;nbsp; 2.2&lt;BR /&gt;1979 123&amp;nbsp; 2.3&lt;BR /&gt;1980 127&amp;nbsp; 2.4&lt;BR /&gt;1981 4237 2.5&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=have2 tagsort;&lt;BR /&gt;by date;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data have3 ;&lt;BR /&gt;do _n_=1 by 1 until (last.Date);&lt;BR /&gt;set have2;&lt;BR /&gt;by date;&lt;BR /&gt;date=cats(_n_,Date);&lt;BR /&gt;output;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data = have3 tagsort;&lt;BR /&gt;by Identifier;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;merge have1 (in=a)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; have3 (in=b);&lt;BR /&gt;by Identifier;&lt;BR /&gt;if a=b;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Apr 2012 12:53:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merging-data-sets-that-have-different-range-for-by-variable/m-p/86110#M289110</guid>
      <dc:creator>Hima</dc:creator>
      <dc:date>2012-04-17T12:53:39Z</dc:date>
    </item>
    <item>
      <title>Re: Merging data sets that have different range for 'by variable'</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merging-data-sets-that-have-different-range-for-by-variable/m-p/86111#M289111</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sharmas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this..Hope it helps..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have1(drop=date);&lt;/P&gt;&lt;P&gt;input Date $ Identifier Value;&lt;/P&gt;&lt;P&gt;date1 = mdy( substr(date,1,2), &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1, substr(date,3,4) ); &lt;/P&gt;&lt;P&gt;format date1 monyy7.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;011980 3424 2.4&lt;/P&gt;&lt;P&gt;021980 3543 4.3&lt;/P&gt;&lt;P&gt;031980 432&amp;nbsp; 5.5&lt;/P&gt;&lt;P&gt;121980 4332&lt;/P&gt;&lt;P&gt;011981 423&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=have1 ;&lt;/P&gt;&lt;P&gt;by Identifier ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data have2(drop=date i);&lt;/P&gt;&lt;P&gt;input Date Identifier Value;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do i=1 to 12;&lt;/P&gt;&lt;P&gt;date1=intnx('month',input(compress('Jan'||date),monyy7.),i);&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;format date1 monyy7.;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1979 432&amp;nbsp; 4.2&lt;/P&gt;&lt;P&gt;1980 4332 1.2&lt;/P&gt;&lt;P&gt;1981 423&amp;nbsp; 2.2&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=have2 ;by identifier ;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;merge have1(in=a) have2(in=b);&lt;/P&gt;&lt;P&gt;by identifier ;&lt;/P&gt;&lt;P&gt;if b and a;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Shiva&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Apr 2012 15:37:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merging-data-sets-that-have-different-range-for-by-variable/m-p/86111#M289111</guid>
      <dc:creator>shivas</dc:creator>
      <dc:date>2012-04-17T15:37:05Z</dc:date>
    </item>
  </channel>
</rss>

