<?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: How to merge two datasets based on exact values across multiple variables? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-datasets-based-on-exact-values-across-multiple/m-p/722295#M223940</link>
    <description>&lt;P&gt;Let's say every record in A has a unique combination of var1/var2/var3/var4/var5.&amp;nbsp; And the same for B.&amp;nbsp; If so, it won't matter which is the major sort key.&amp;nbsp; But you would have to change&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data new;
merge dataA (in=A) dataB (in=B);
if A;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;to&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data new;
  merge dataA (in=A) dataB (in=B);
  by var1 var2 var3 var4 var5;
  if A;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Of course this could be done in sql as a left join of a with b&amp;nbsp; &amp;nbsp;on a.var1=b.var1 and a.var2=b.var2 ... and a.var5=b.var5.&lt;/P&gt;</description>
    <pubDate>Sat, 27 Feb 2021 01:56:01 GMT</pubDate>
    <dc:creator>mkeintz</dc:creator>
    <dc:date>2021-02-27T01:56:01Z</dc:date>
    <item>
      <title>How to merge two datasets based on exact values across multiple variables?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-datasets-based-on-exact-values-across-multiple/m-p/722290#M223938</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have this dataset here which is a subset from a much larger master dataset:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Dataset A:&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;ID&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;Var1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;Var2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;Var3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;Var4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;Var5&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1-2345&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;64.5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;9.8&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;2.1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;5&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;6-7890&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;5.4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;7.5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;6.4&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;9-8755&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1.1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;4.2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;6.4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;10.5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;5.8&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;4-3210&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;15.4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;3.1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;11&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;13&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have new variables I want to add onto Dataset A based on this Dataset B:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Dataset B:&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE width="603px"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="98px" height="30px"&gt;
&lt;P&gt;Var1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="99px" height="30px"&gt;
&lt;P&gt;Var2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="100px" height="30px"&gt;
&lt;P&gt;Var3&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="101px" height="30px"&gt;
&lt;P&gt;Var4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="63px" height="30px"&gt;
&lt;P&gt;Var5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="69px" height="30px"&gt;
&lt;P&gt;Var6&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="72px" height="30px"&gt;
&lt;P&gt;Var7&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="98px" height="30px"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="99px" height="30px"&gt;
&lt;P&gt;64.5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="100px" height="30px"&gt;
&lt;P&gt;9.8&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="101px" height="30px"&gt;
&lt;P&gt;2.1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="63px" height="30px"&gt;
&lt;P&gt;5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="69px" height="30px"&gt;
&lt;P&gt;7.7&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="72px" height="30px"&gt;
&lt;P&gt;5.5&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="98px" height="30px"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="99px" height="30px"&gt;
&lt;P&gt;5.4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="100px" height="30px"&gt;
&lt;P&gt;7.5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="101px" height="30px"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="63px" height="30px"&gt;
&lt;P&gt;6.4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="69px" height="30px"&gt;
&lt;P&gt;9.4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="72px" height="30px"&gt;
&lt;P&gt;6.8&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="98px" height="30px"&gt;
&lt;P&gt;1.1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="99px" height="30px"&gt;
&lt;P&gt;4.2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="100px" height="30px"&gt;
&lt;P&gt;6.4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="101px" height="30px"&gt;
&lt;P&gt;10.5&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="63px" height="30px"&gt;
&lt;P&gt;5.8&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="69px" height="30px"&gt;
&lt;P&gt;8.2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="72px" height="30px"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="98px" height="30px"&gt;
&lt;P&gt;10&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="99px" height="30px"&gt;
&lt;P&gt;15.4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="100px" height="30px"&gt;
&lt;P&gt;3.1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="101px" height="30px"&gt;
&lt;P&gt;11&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="63px" height="30px"&gt;
&lt;P&gt;13&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="69px" height="30px"&gt;
&lt;P&gt;1.2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="72px" height="30px"&gt;
&lt;P&gt;51&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The problem as you can see is that I don't have an "ID" variable on Dataset B (it's complicated) and so I don't have an identifier variable I can use to match and merge the two datasets together.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried the code below but my understanding is that this prioritizes the variables I'm listing&amp;nbsp;&lt;STRONG&gt;in order&lt;/STRONG&gt;. I'm thinking this would be an issue since Var1 contains 3 rows of "10" which could confuse the merging since it won't know which ID to merge it to (?).&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data = dataA;
by var1 var2 var3 var4 var5;
run;

proc sort data = dataB;
by var1 var2 var3 var4 var5;
run;

data new;
merge dataA (in=A) dataB (in=B);
if A;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;How would I merge it so that it is the combination of values across "var1" - "var5" that I am merging by?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since&amp;nbsp;&lt;STRONG&gt;Dataset A&amp;nbsp;&lt;/STRONG&gt;originally came from&amp;nbsp;&lt;STRONG&gt;Dataset B&lt;/STRONG&gt;, the combination of unique values across "Var1" - "Var5" in both datasets are essentially the same. The only thing new is the "Var6" &amp;amp; "Var7" variables that I'm trying to add from &lt;STRONG&gt;Dataset B&amp;nbsp;&lt;/STRONG&gt;to&amp;nbsp;&lt;STRONG&gt;Dataset A.&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any help would be appreciated, thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 27 Feb 2021 01:27:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-datasets-based-on-exact-values-across-multiple/m-p/722290#M223938</guid>
      <dc:creator>asgee</dc:creator>
      <dc:date>2021-02-27T01:27:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to merge two datasets based on exact values across multiple variables?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-datasets-based-on-exact-values-across-multiple/m-p/722295#M223940</link>
      <description>&lt;P&gt;Let's say every record in A has a unique combination of var1/var2/var3/var4/var5.&amp;nbsp; And the same for B.&amp;nbsp; If so, it won't matter which is the major sort key.&amp;nbsp; But you would have to change&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data new;
merge dataA (in=A) dataB (in=B);
if A;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;to&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data new;
  merge dataA (in=A) dataB (in=B);
  by var1 var2 var3 var4 var5;
  if A;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Of course this could be done in sql as a left join of a with b&amp;nbsp; &amp;nbsp;on a.var1=b.var1 and a.var2=b.var2 ... and a.var5=b.var5.&lt;/P&gt;</description>
      <pubDate>Sat, 27 Feb 2021 01:56:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-datasets-based-on-exact-values-across-multiple/m-p/722295#M223940</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2021-02-27T01:56:01Z</dc:date>
    </item>
    <item>
      <title>Re: How to merge two datasets based on exact values across multiple variables?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-datasets-based-on-exact-values-across-multiple/m-p/722296#M223941</link>
      <description>&lt;P&gt;Hi &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461"&gt;@mkeintz&lt;/a&gt; ! Thanks for the reply. I see what you mean. I think I like your idea of doing the SQL commands instead since that's exactly what I was trying to go for (same values across each of the 5 vars). &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Thanks, will try it out myself!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 27 Feb 2021 02:33:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-datasets-based-on-exact-values-across-multiple/m-p/722296#M223941</guid>
      <dc:creator>asgee</dc:creator>
      <dc:date>2021-02-27T02:33:18Z</dc:date>
    </item>
  </channel>
</rss>

