<?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 get output expected when by variables have blank values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303443#M64459</link>
    <description>&lt;P&gt;Are you certain they're an exact match across all fields?&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 09 Oct 2016 08:38:04 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2016-10-09T08:38:04Z</dc:date>
    <item>
      <title>how to get output expected when by variables have blank values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303436#M64456</link>
      <description>&lt;P&gt;Dear&lt;/P&gt;&lt;P&gt;I need to merge two data sets by 5 variables. For some OBs there are blank values in the data for the by variables. I am not getting the output when the by variables have blank values.&lt;/P&gt;&lt;P&gt;Data1&lt;/P&gt;&lt;P&gt;id &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; date &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; awk &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;datapage&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2016-07-20 &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;111000&lt;BR /&gt;2 &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; &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;123456&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data2&lt;/P&gt;&lt;P&gt;id &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;date &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;awk &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;datapage &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vsyn&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2016-07-20 &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 111000 &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;no&lt;BR /&gt;2 &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; &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 123456 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; no&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;code;&lt;/P&gt;&lt;P&gt;proc sort data=data1;&lt;BR /&gt;by id date rd awk datapage;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=data2;&lt;BR /&gt;by &lt;SPAN&gt;id date rd awk datapage&lt;/SPAN&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data dat3;&lt;BR /&gt;merge dat1(in=a) data2(in=b);&lt;BR /&gt;by&amp;nbsp;&lt;SPAN&gt;id date rd awk datapage&lt;/SPAN&gt;;&lt;BR /&gt;if a;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;Output needed;&lt;/P&gt;&lt;P&gt;ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;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;datapage &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; &amp;nbsp; vsyn&lt;BR /&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2016-07-20 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;111000 &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;no&lt;BR /&gt;2 &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; &amp;nbsp; &amp;nbsp; 123456 &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; no&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;output getting;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2016-07-20 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 111000 &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;no&lt;BR /&gt;2 &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; &amp;nbsp; &amp;nbsp;123456&lt;/P&gt;</description>
      <pubDate>Sun, 09 Oct 2016 07:44:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303436#M64456</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2016-10-09T07:44:13Z</dc:date>
    </item>
    <item>
      <title>Re: how to get output expected when by variables have blank values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303443#M64459</link>
      <description>&lt;P&gt;Are you certain they're an exact match across all fields?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 09 Oct 2016 08:38:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303443#M64459</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-10-09T08:38:04Z</dc:date>
    </item>
    <item>
      <title>Re: how to get output expected when by variables have blank values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303449#M64461</link>
      <description>&lt;P&gt;I get what you want. there are something wrong in your data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Data1;
input (id             date                     RD               awk                  datapage) (:$20.);
cards;
1            2016-07-20                    . .                                    111000
2                . . .                                                                      123456
;
run;

data data2;
input (id              date                    RD                awk                    datapage                     vsyn) (:$20.);
cards;
1             2016-07-20                      . .                                   111000                          no
2                   . . .                                                                      123456                         no
;
run;
data want;
 merge data1 data2;
 by id date rd awk datapage;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 09 Oct 2016 08:53:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303449#M64461</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-10-09T08:53:59Z</dc:date>
    </item>
    <item>
      <title>Re: how to get output expected when by variables have blank values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303453#M64463</link>
      <description>&lt;P&gt;MERGE will do this ... but not for the case you illustrated. &amp;nbsp;A missing value in the second data set overwrites a valid value in the first data set. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There are many ways to fix this, but the easiest is if you have a one-to-one match (or a one-to-zero match). &amp;nbsp;In that case, you can switch from MERGE to UPDATE. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Another easy fix: &amp;nbsp;If the missing values are limited to just one data set, mention that data set first in the MERGE statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have a many-to-one match, and the missing values could be in either data set, you have to jump through some small hoops. &amp;nbsp;For example&lt;BR /&gt;&lt;BR /&gt;merge dataset1 (in=a) dataset2 (in=b rename=(vsyn=vsyn2));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now if there is a conflict in the values for vsyn, you have to choose which one you want. &amp;nbsp;But just to get a nonmissing value, you could code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;if vsyn=' ' then vsyn=vsyn2;&lt;/P&gt;
&lt;P&gt;drop vsyn2;&lt;/P&gt;</description>
      <pubDate>Sun, 09 Oct 2016 13:02:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303453#M64463</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-10-09T13:02:32Z</dc:date>
    </item>
    <item>
      <title>Re: how to get output expected when by variables have blank values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303456#M64464</link>
      <description>&lt;P&gt;Thank you. I found why. I used Length(date) to find why. When the date is missing, &amp;nbsp;the length are 1 and 10 in these datasets. I fixed the lengths and it worked.&lt;/P&gt;</description>
      <pubDate>Sun, 09 Oct 2016 16:13:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-get-output-expected-when-by-variables-have-blank-values/m-p/303456#M64464</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2016-10-09T16:13:52Z</dc:date>
    </item>
  </channel>
</rss>

