<?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: Merging one-to-many creates missing values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246024#M45985</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; data dataset1;
  merge dataset1 types;
  BY textType something;
RUN;  &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;You need to specify the key of the somethingX field.&lt;/P&gt;</description>
    <pubDate>Tue, 26 Jan 2016 00:03:39 GMT</pubDate>
    <dc:creator>DanZ</dc:creator>
    <dc:date>2016-01-26T00:03:39Z</dc:date>
    <item>
      <title>Merging one-to-many creates missing values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246022#M45983</link>
      <description>&lt;DIV&gt;Thank everybody for the previous help.&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I have one more question.&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;SPAN&gt;I am trying to merge two datasets:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;data dataSet1;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type1 something1&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type1 something2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type1 something3&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;type2 something1&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type2 something2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type2 something3&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;type3 something1&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type3 something2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type3 something3&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;data types;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; input myText textType;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; datalines;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;a &amp;nbsp;type1&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;b &amp;nbsp;type2&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;c type3&lt;/DIV&gt;&lt;DIV&gt;run;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I would like to merge these two to get&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;type1 something1 a&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type1 something2 a&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type1 something3 a&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;type2 something1 b&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type2 something2 b&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type2 something3 b&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;type3 something1 c&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type3 something2 c&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type3 something3 c&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;After this I can get rid of Type variable completely. So, basically, I would like to replace type1 by the corresponding 'a', type2 by the corresponding 'b' etc.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The simple code:&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;data dataset1;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; merge dataset1 types;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; BY textType;&lt;/DIV&gt;&lt;DIV&gt;RUN; &amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;creates a strange result:&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;type1 something1 a&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type1 something2&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type1 something3 &amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;type2 something1 b&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type2 something2&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type2 something3 &amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;type3 something1 c&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type3 something2&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;type3 something3&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;(so, textType appears only &amp;nbsp;first time and all the rest are missing values. What is wrong here? What is the most efficient way to do it? &amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thank you very much&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Julia&lt;/DIV&gt;</description>
      <pubDate>Mon, 25 Jan 2016 23:45:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246022#M45983</guid>
      <dc:creator>braverju</dc:creator>
      <dc:date>2016-01-25T23:45:27Z</dc:date>
    </item>
    <item>
      <title>Re: Merging one-to-many creates missing values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246023#M45984</link>
      <description>&lt;P&gt;Order of sets on the MERGE statement makes a difference:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data combined;
   merge types dataset1;
   by texttype;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;But Many to many is not going to work as desired many types.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What you are doing is a JOIN. Merge is doing exactly what the documentation says it will.&lt;/P&gt;
&lt;P&gt;Another way that is more flexible&amp;nbsp;is something like this. Also the JOIN using SQL does not require sorting the data first.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
   create table combined as 
   select dataset1.*, types.mytext
   from dataset1 left join types
      on dataset1.texttype = types.texttype;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;BTW you dataset code for TYPES has an error as MYTEXT is considered numeric as you haven't defined it as character and will generate missing valures for MYTEXT and error messages of invalid data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Jan 2016 00:06:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246023#M45984</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-01-26T00:06:37Z</dc:date>
    </item>
    <item>
      <title>Re: Merging one-to-many creates missing values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246024#M45985</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; data dataset1;
  merge dataset1 types;
  BY textType something;
RUN;  &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;You need to specify the key of the somethingX field.&lt;/P&gt;</description>
      <pubDate>Tue, 26 Jan 2016 00:03:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246024#M45985</guid>
      <dc:creator>DanZ</dc:creator>
      <dc:date>2016-01-26T00:03:39Z</dc:date>
    </item>
    <item>
      <title>Re: Merging one-to-many creates missing values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246025#M45986</link>
      <description>&lt;P&gt;Your code is fine and should work...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data dataSet1;
input textType $ 1-5  textSome $ 7-17 ;
cards;
type1 something1
type1 something2
type1 something3 
type2 something1
type2 something2
type2 something3 
type3 something1
type3 something2
type3 something3 
 ;run;
 
data types;
  input myText $ textType $3-7;
  datalines;
a type1 
b type2 
c type3
   ;
run;
proc sort data=dataset1; by textType; run;
proc sort data=types; by textType; run;

data dataset1;
  merge dataset1 types;
  BY textType;
  drop textType;
RUN;  &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Try run &amp;nbsp;the code above, you did not show your full code.&lt;/P&gt;</description>
      <pubDate>Tue, 26 Jan 2016 00:07:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246025#M45986</guid>
      <dc:creator>mohamed_zaki</dc:creator>
      <dc:date>2016-01-26T00:07:09Z</dc:date>
    </item>
    <item>
      <title>Re: Merging one-to-many creates missing values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246026#M45987</link>
      <description>&lt;P&gt;Why!!??&lt;/P&gt;</description>
      <pubDate>Tue, 26 Jan 2016 00:08:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246026#M45987</guid>
      <dc:creator>mohamed_zaki</dc:creator>
      <dc:date>2016-01-26T00:08:40Z</dc:date>
    </item>
    <item>
      <title>Re: Merging one-to-many creates missing values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246046#M45989</link>
      <description>&lt;P&gt;It's a combination of two factors. &amp;nbsp;First, it's likely you tested and re-tested, trying to get this to work. &amp;nbsp;And second, you are reusing the name DATASET1 as both the input and the output.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All of that is legal. &amp;nbsp;However, it likely created the situation where DATASET1 already contains MYTEXT (possibly with all missing values at some point along the way). &amp;nbsp;Get rid of it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;data dataset1;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; merge dataset1 (drop=MYTEXT) types;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; BY textType;&lt;/DIV&gt;
&lt;DIV&gt;RUN; &amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;That should fix the problem.&lt;/DIV&gt;</description>
      <pubDate>Tue, 26 Jan 2016 04:20:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246046#M45989</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-01-26T04:20:54Z</dc:date>
    </item>
    <item>
      <title>Re: Merging one-to-many creates missing values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246089#M45996</link>
      <description>Thank you for the explanation! Got it!</description>
      <pubDate>Tue, 26 Jan 2016 13:55:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merging-one-to-many-creates-missing-values/m-p/246089#M45996</guid>
      <dc:creator>braverju</dc:creator>
      <dc:date>2016-01-26T13:55:56Z</dc:date>
    </item>
  </channel>
</rss>

