<?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 Merge 2 datasets in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Merge-2-datasets/m-p/446035#M111847</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I wanted to do age/sex-adjusted standardized rates. So I've a standard population in 8 strata (2 sexes and 4 age groups) and I've a study cohort . The problem is some groups in the study cohort&amp;nbsp;don't have all strata and I just wanted to make all the possible strata shown. I tried both SQL (including full outer join) and data step; both save me the right&amp;nbsp; and none of them, understandably, look right. How should write the code?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/*standard population count by sesx and age*/ 
data stdpop; input  strata $ POPCOUNT	POPTOTAL;
datalines;
F_1849 3003188 10393957
F_5064 1319163 10393957
F_65up 1024958 10393957
M_1849 2964946 10393957
M_5064 1276806 10393957
M_65up  804896 10393957
;
proc print data=stdpop ; run;
/*Study cohort, with just one group to demonsrate - the group has only 2 age/sex groups*/ 
data have ; input group strata $ amount;
datalines;
1 F_1849 1000
1 M_65up 2000
2 F_5064 300
2 M_65up 400
;
*The SQL way;
proc sql; create table want1 as select b.*, a.* from stdpop a left join have as b on  a.strata=b.strata; quit;
proc print; run;
proc sort data=have; by strata;
*The data step way;
data want2; merge have stdpop; by strata; run;
proc print; run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The want data should look like the following, with Group value is filled for the missing strata; as to amount, either missing&amp;nbsp;(as seen) or 0 would do.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE style="border-collapse: collapse; width: 240pt;" border="0" width="320" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 26.25pt;"&gt;
&lt;TD width="64" height="35" class="xl70" style="height: 26.25pt; width: 48pt;"&gt;Group&lt;/TD&gt;
&lt;TD width="64" class="xl70" style="width: 48pt;"&gt;Strata&lt;/TD&gt;
&lt;TD width="64" class="xl70" style="width: 48pt;"&gt;Amount&lt;/TD&gt;
&lt;TD width="64" class="xl71" style="width: 48pt;"&gt;POPCOUNT&lt;/TD&gt;
&lt;TD width="64" class="xl72" style="width: 48pt;"&gt;POPTOTAL&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_1849&lt;/TD&gt;
&lt;TD align="right"&gt;1000&lt;/TD&gt;
&lt;TD class="xl66"&gt;3003188&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_5064&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;1319163&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_65up&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;1024958&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl65"&gt;M_1849&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;2964946&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl65"&gt;M_5064&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;1276806&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl67"&gt;M_65up&lt;/TD&gt;
&lt;TD align="right"&gt;2000&lt;/TD&gt;
&lt;TD class="xl68"&gt;804896&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_1849&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;3003188&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_5064&lt;/TD&gt;
&lt;TD align="right"&gt;300&lt;/TD&gt;
&lt;TD class="xl66"&gt;1319163&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_65up&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;1024958&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl65"&gt;M_1849&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;2964946&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl65"&gt;M_5064&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;1276806&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl67"&gt;M_65up&lt;/TD&gt;
&lt;TD align="right"&gt;400&lt;/TD&gt;
&lt;TD class="xl68"&gt;804896&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks.&lt;/P&gt;</description>
    <pubDate>Fri, 16 Mar 2018 01:20:46 GMT</pubDate>
    <dc:creator>Solph</dc:creator>
    <dc:date>2018-03-16T01:20:46Z</dc:date>
    <item>
      <title>Merge 2 datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-2-datasets/m-p/446035#M111847</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I wanted to do age/sex-adjusted standardized rates. So I've a standard population in 8 strata (2 sexes and 4 age groups) and I've a study cohort . The problem is some groups in the study cohort&amp;nbsp;don't have all strata and I just wanted to make all the possible strata shown. I tried both SQL (including full outer join) and data step; both save me the right&amp;nbsp; and none of them, understandably, look right. How should write the code?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/*standard population count by sesx and age*/ 
data stdpop; input  strata $ POPCOUNT	POPTOTAL;
datalines;
F_1849 3003188 10393957
F_5064 1319163 10393957
F_65up 1024958 10393957
M_1849 2964946 10393957
M_5064 1276806 10393957
M_65up  804896 10393957
;
proc print data=stdpop ; run;
/*Study cohort, with just one group to demonsrate - the group has only 2 age/sex groups*/ 
data have ; input group strata $ amount;
datalines;
1 F_1849 1000
1 M_65up 2000
2 F_5064 300
2 M_65up 400
;
*The SQL way;
proc sql; create table want1 as select b.*, a.* from stdpop a left join have as b on  a.strata=b.strata; quit;
proc print; run;
proc sort data=have; by strata;
*The data step way;
data want2; merge have stdpop; by strata; run;
proc print; run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The want data should look like the following, with Group value is filled for the missing strata; as to amount, either missing&amp;nbsp;(as seen) or 0 would do.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE style="border-collapse: collapse; width: 240pt;" border="0" width="320" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 26.25pt;"&gt;
&lt;TD width="64" height="35" class="xl70" style="height: 26.25pt; width: 48pt;"&gt;Group&lt;/TD&gt;
&lt;TD width="64" class="xl70" style="width: 48pt;"&gt;Strata&lt;/TD&gt;
&lt;TD width="64" class="xl70" style="width: 48pt;"&gt;Amount&lt;/TD&gt;
&lt;TD width="64" class="xl71" style="width: 48pt;"&gt;POPCOUNT&lt;/TD&gt;
&lt;TD width="64" class="xl72" style="width: 48pt;"&gt;POPTOTAL&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_1849&lt;/TD&gt;
&lt;TD align="right"&gt;1000&lt;/TD&gt;
&lt;TD class="xl66"&gt;3003188&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_5064&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;1319163&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_65up&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;1024958&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl65"&gt;M_1849&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;2964946&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl65"&gt;M_5064&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;1276806&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;1&lt;/TD&gt;
&lt;TD class="xl67"&gt;M_65up&lt;/TD&gt;
&lt;TD align="right"&gt;2000&lt;/TD&gt;
&lt;TD class="xl68"&gt;804896&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_1849&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;3003188&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_5064&lt;/TD&gt;
&lt;TD align="right"&gt;300&lt;/TD&gt;
&lt;TD class="xl66"&gt;1319163&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl65"&gt;F_65up&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;1024958&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl65"&gt;M_1849&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;2964946&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl65"&gt;M_5064&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="xl66"&gt;1276806&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.75pt;"&gt;
&lt;TD height="21" align="right" style="height: 15.75pt;"&gt;2&lt;/TD&gt;
&lt;TD class="xl67"&gt;M_65up&lt;/TD&gt;
&lt;TD align="right"&gt;400&lt;/TD&gt;
&lt;TD class="xl68"&gt;804896&lt;/TD&gt;
&lt;TD class="xl69"&gt;10393957&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Mar 2018 01:20:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-2-datasets/m-p/446035#M111847</guid>
      <dc:creator>Solph</dc:creator>
      <dc:date>2018-03-16T01:20:46Z</dc:date>
    </item>
    <item>
      <title>Re: Merge 2 datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Merge-2-datasets/m-p/446042#M111853</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Have&lt;/STRONG&gt; data set: contains Group &amp;amp; Amount fields&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Stdpop&lt;/STRONG&gt; data set contains records, some of which have strata values which are not in the &lt;STRONG&gt;Have&lt;/STRONG&gt; data set - F)65up, M_849, M_5064&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So for these values, how is are the Group and Amount fields to be evaluated?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your response will determine how best to proceed, but I suspect neither SQL or SAS data merge will suffice, so this will most likely be a hash table solution. (Exact solution will depend on the business rules for calculation of the Group value.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Mar 2018 02:36:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Merge-2-datasets/m-p/446042#M111853</guid>
      <dc:creator>AndrewHowell</dc:creator>
      <dc:date>2018-03-16T02:36:27Z</dc:date>
    </item>
  </channel>
</rss>

