<?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 selecting only certain observations based on 2 variable values in a data step in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168320#M3269</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a dataset that contains a variable for year (2010-2013), a variable for unitID (LT0100 to LT2400) and some other variables (a_1-a_8;b_1-b_8;etc...). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In a data step below, I want to create a new variable (f_5) based on (one variable divided by the sum of that variable), where the summary procedure is done given they all belong to the same year and same unit Id.&lt;/P&gt;&lt;P&gt;I think that I need to create some do-loops or macro variables, but I can´t figure out the specific coding. This is what I have tried:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; select distinct unitID into :Unit&amp;nbsp; separated by ', ' from Dataset1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; select distinct year into :year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; separated by ', ' from Dataset1; &lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data Dataset1;&lt;/P&gt;&lt;P&gt;set Dataset1;&lt;/P&gt;&lt;P&gt;if &amp;amp;unitID and &amp;amp;year then &lt;/P&gt;&lt;P&gt;&amp;nbsp; a2_tot = sum(a_2);&lt;/P&gt;&lt;P&gt;f_5 = a_2/a2_tot;&lt;/P&gt;&lt;P&gt;&amp;nbsp; drop a2_tot;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any suggestions on how to create the desired new variable?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Hank&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 09 Feb 2014 15:35:32 GMT</pubDate>
    <dc:creator>Hank</dc:creator>
    <dc:date>2014-02-09T15:35:32Z</dc:date>
    <item>
      <title>selecting only certain observations based on 2 variable values in a data step</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168320#M3269</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a dataset that contains a variable for year (2010-2013), a variable for unitID (LT0100 to LT2400) and some other variables (a_1-a_8;b_1-b_8;etc...). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In a data step below, I want to create a new variable (f_5) based on (one variable divided by the sum of that variable), where the summary procedure is done given they all belong to the same year and same unit Id.&lt;/P&gt;&lt;P&gt;I think that I need to create some do-loops or macro variables, but I can´t figure out the specific coding. This is what I have tried:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; select distinct unitID into :Unit&amp;nbsp; separated by ', ' from Dataset1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; select distinct year into :year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; separated by ', ' from Dataset1; &lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data Dataset1;&lt;/P&gt;&lt;P&gt;set Dataset1;&lt;/P&gt;&lt;P&gt;if &amp;amp;unitID and &amp;amp;year then &lt;/P&gt;&lt;P&gt;&amp;nbsp; a2_tot = sum(a_2);&lt;/P&gt;&lt;P&gt;f_5 = a_2/a2_tot;&lt;/P&gt;&lt;P&gt;&amp;nbsp; drop a2_tot;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any suggestions on how to create the desired new variable?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Hank&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 09 Feb 2014 15:35:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168320#M3269</guid>
      <dc:creator>Hank</dc:creator>
      <dc:date>2014-02-09T15:35:32Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only certain observations based on 2 variable values in a data step</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168321#M3270</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Example have and want datasets are usually an easier way of showing the forum what you really want to achieve.&amp;nbsp; From your description it appears like you only want to accomplish something like the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create table want as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select unitid,year,x,x/sum(x) as f_5&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by unitid,year&lt;/P&gt;&lt;P&gt;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 09 Feb 2014 17:32:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168321#M3270</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2014-02-09T17:32:50Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only certain observations based on 2 variable values in a data step</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168322#M3271</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your reply! Here is a clarification:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the dataset below, I have all the variables except f_5. I want to create f_5 as "a_2/SUM(a_2, where UnitID and year is the same and Code range between 1-6)". &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In other words, I want to have the ratio of a specific code value, over the sum of all code values (except 0), for the variable a_2 for each specific UnitID and Year.&lt;/P&gt;&lt;P&gt;Preferably in a data step, since the creation of this new variable (f_5) is just one out of many more variables that needs to be created in ways similar to this one and I would prefer if all could be created in the same data step.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" style="width: 448px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="xl64" height="20" width="64"&gt;UnitId&lt;/TD&gt;&lt;TD class="xl67" width="64"&gt;Year&lt;/TD&gt;&lt;TD class="xl67" width="64"&gt;Code&lt;/TD&gt;&lt;TD class="xl65" width="64"&gt;a_1&lt;/TD&gt;&lt;TD class="xl64" width="64"&gt;a_2&lt;/TD&gt;&lt;TD class="xl64" width="64"&gt;a_3&lt;/TD&gt;&lt;TD class="xl64" width="64"&gt;f_5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt; &lt;/TD&gt;&lt;TD class="xl64"&gt;&lt;/TD&gt;&lt;TD class="xl64"&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;1&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;2959139&lt;/TD&gt;&lt;TD align="right"&gt;320212&lt;/TD&gt;&lt;TD align="right"&gt;1600244&lt;/TD&gt;&lt;TD align="right"&gt;0,137518&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;2&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;4565010&lt;/TD&gt;&lt;TD align="right"&gt;142715&lt;/TD&gt;&lt;TD align="right"&gt;996557&lt;/TD&gt;&lt;TD align="right"&gt;0,06129&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;3&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;3301774&lt;/TD&gt;&lt;TD align="right"&gt;401540&lt;/TD&gt;&lt;TD align="right"&gt;2041513&lt;/TD&gt;&lt;TD align="right"&gt;0,172445&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;4&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;7384528&lt;/TD&gt;&lt;TD align="right"&gt;1163174&lt;/TD&gt;&lt;TD align="right"&gt;5855854&lt;/TD&gt;&lt;TD align="right"&gt;0,499536&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;5&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;1357620&lt;/TD&gt;&lt;TD align="right"&gt;33371&lt;/TD&gt;&lt;TD align="right"&gt;1125468&lt;/TD&gt;&lt;TD align="right"&gt;0,014332&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;6&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;1454282&lt;/TD&gt;&lt;TD align="right"&gt;267495&lt;/TD&gt;&lt;TD align="right"&gt;1110066&lt;/TD&gt;&lt;TD align="right"&gt;0,114878&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;0&lt;/TD&gt;&lt;TD class="xl66"&gt; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;1&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;649706&lt;/TD&gt;&lt;TD align="right"&gt;171904&lt;/TD&gt;&lt;TD align="right"&gt;326910&lt;/TD&gt;&lt;TD align="right"&gt;0,15413&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;2&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;1058760&lt;/TD&gt;&lt;TD align="right"&gt;97291&lt;/TD&gt;&lt;TD align="right"&gt;167824&lt;/TD&gt;&lt;TD align="right"&gt;0,087232&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;3&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;1156493&lt;/TD&gt;&lt;TD align="right"&gt;348738&lt;/TD&gt;&lt;TD align="right"&gt;733397&lt;/TD&gt;&lt;TD align="right"&gt;0,31268&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;4&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;2047786&lt;/TD&gt;&lt;TD align="right"&gt;415344&lt;/TD&gt;&lt;TD align="right"&gt;1444201&lt;/TD&gt;&lt;TD align="right"&gt;0,372399&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;5&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;257839&lt;/TD&gt;&lt;TD align="right"&gt;76602&lt;/TD&gt;&lt;TD align="right"&gt;174777&lt;/TD&gt;&lt;TD align="right"&gt;0,068682&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;6&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;248166&lt;/TD&gt;&lt;TD align="right"&gt;5440&lt;/TD&gt;&lt;TD align="right"&gt;241026&lt;/TD&gt;&lt;TD align="right"&gt;0,004878&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;0&lt;/TD&gt;&lt;TD class="xl66"&gt; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;1&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;478329&lt;/TD&gt;&lt;TD align="right"&gt;37400&lt;/TD&gt;&lt;TD align="right"&gt;224111&lt;/TD&gt;&lt;TD align="right"&gt;0,091693&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;2&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;745501&lt;/TD&gt;&lt;TD align="right"&gt;16167&lt;/TD&gt;&lt;TD align="right"&gt;65280&lt;/TD&gt;&lt;TD align="right"&gt;0,039637&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;3&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;705415&lt;/TD&gt;&lt;TD align="right"&gt;133909&lt;/TD&gt;&lt;TD align="right"&gt;542181&lt;/TD&gt;&lt;TD align="right"&gt;0,328304&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;4&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;901986&lt;/TD&gt;&lt;TD align="right"&gt;182750&lt;/TD&gt;&lt;TD align="right"&gt;712861&lt;/TD&gt;&lt;TD align="right"&gt;0,448047&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;5&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;175015&lt;/TD&gt;&lt;TD align="right"&gt;37655&lt;/TD&gt;&lt;TD align="right"&gt;112965&lt;/TD&gt;&lt;TD align="right"&gt;0,092319&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2010&lt;/TD&gt;&lt;TD class="xl68"&gt;6&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;185470&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD align="right"&gt;185470&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt; &lt;/TD&gt;&lt;TD class="xl64"&gt;&lt;/TD&gt;&lt;TD class="xl64"&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;1&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;2959139&lt;/TD&gt;&lt;TD align="right"&gt;352233,2&lt;/TD&gt;&lt;TD align="right"&gt;1600244&lt;/TD&gt;&lt;TD align="right"&gt;0,137518&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;2&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;4565010&lt;/TD&gt;&lt;TD align="right"&gt;156986,5&lt;/TD&gt;&lt;TD align="right"&gt;996557&lt;/TD&gt;&lt;TD align="right"&gt;0,06129&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;3&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;3301774&lt;/TD&gt;&lt;TD align="right"&gt;441694&lt;/TD&gt;&lt;TD align="right"&gt;2041513&lt;/TD&gt;&lt;TD align="right"&gt;0,172445&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;4&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;7384528&lt;/TD&gt;&lt;TD align="right"&gt;1279491&lt;/TD&gt;&lt;TD align="right"&gt;5855854&lt;/TD&gt;&lt;TD align="right"&gt;0,499536&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;5&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;1357620&lt;/TD&gt;&lt;TD align="right"&gt;36708,1&lt;/TD&gt;&lt;TD align="right"&gt;1125468&lt;/TD&gt;&lt;TD align="right"&gt;0,014332&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0100&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;6&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;1454282&lt;/TD&gt;&lt;TD align="right"&gt;294244,5&lt;/TD&gt;&lt;TD align="right"&gt;1110066&lt;/TD&gt;&lt;TD align="right"&gt;0,114878&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;0&lt;/TD&gt;&lt;TD class="xl66"&gt; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;1&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;649706&lt;/TD&gt;&lt;TD align="right"&gt;189094,4&lt;/TD&gt;&lt;TD align="right"&gt;326910&lt;/TD&gt;&lt;TD align="right"&gt;0,15413&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;2&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;1058760&lt;/TD&gt;&lt;TD align="right"&gt;107020,1&lt;/TD&gt;&lt;TD align="right"&gt;167824&lt;/TD&gt;&lt;TD align="right"&gt;0,087232&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;3&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;1156493&lt;/TD&gt;&lt;TD align="right"&gt;383611,8&lt;/TD&gt;&lt;TD align="right"&gt;733397&lt;/TD&gt;&lt;TD align="right"&gt;0,31268&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;4&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;2047786&lt;/TD&gt;&lt;TD align="right"&gt;456878,4&lt;/TD&gt;&lt;TD align="right"&gt;1444201&lt;/TD&gt;&lt;TD align="right"&gt;0,372399&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;5&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;257839&lt;/TD&gt;&lt;TD align="right"&gt;84262,2&lt;/TD&gt;&lt;TD align="right"&gt;174777&lt;/TD&gt;&lt;TD align="right"&gt;0,068682&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0300&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;6&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;248166&lt;/TD&gt;&lt;TD align="right"&gt;5984&lt;/TD&gt;&lt;TD align="right"&gt;241026&lt;/TD&gt;&lt;TD align="right"&gt;0,004878&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;0&lt;/TD&gt;&lt;TD class="xl66"&gt; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;1&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;478329&lt;/TD&gt;&lt;TD align="right"&gt;41140&lt;/TD&gt;&lt;TD align="right"&gt;224111&lt;/TD&gt;&lt;TD align="right"&gt;0,091693&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;2&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;745501&lt;/TD&gt;&lt;TD align="right"&gt;17783,7&lt;/TD&gt;&lt;TD align="right"&gt;65280&lt;/TD&gt;&lt;TD align="right"&gt;0,039637&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;3&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;705415&lt;/TD&gt;&lt;TD align="right"&gt;147299,9&lt;/TD&gt;&lt;TD align="right"&gt;542181&lt;/TD&gt;&lt;TD align="right"&gt;0,328304&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;4&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;901986&lt;/TD&gt;&lt;TD align="right"&gt;201025&lt;/TD&gt;&lt;TD align="right"&gt;712861&lt;/TD&gt;&lt;TD align="right"&gt;0,448047&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;5&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;175015&lt;/TD&gt;&lt;TD align="right"&gt;41420,5&lt;/TD&gt;&lt;TD align="right"&gt;112965&lt;/TD&gt;&lt;TD align="right"&gt;0,092319&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;LT0400&lt;/TD&gt;&lt;TD class="xl68"&gt;2011&lt;/TD&gt;&lt;TD class="xl68"&gt;6&lt;/TD&gt;&lt;TD align="right" class="xl66"&gt;185470&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD align="right"&gt;185470&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Hank&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Feb 2014 08:08:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168322#M3271</guid>
      <dc:creator>Hank</dc:creator>
      <dc:date>2014-02-10T08:08:49Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only certain observations based on 2 variable values in a data step</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168323#M3272</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Hank&lt;/P&gt;&lt;P&gt;Thanks for the improved explanation.&lt;/P&gt;&lt;P&gt;While it is doable to accomplish everything you need in a single data step, it's fairly challenging. I would recommend Arthur's approach to get the summarized data first, in a step like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt; create table have_summ as&lt;/P&gt;&lt;P&gt; select UnitId, Year, sum(a_2) as Sum_a_2&lt;/P&gt;&lt;P&gt; from have&lt;/P&gt;&lt;P&gt; where Code &amp;gt; 0&lt;/P&gt;&lt;P&gt; group by UnitId, Year&lt;/P&gt;&lt;P&gt; order by UnitId, Year;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and then sort your original dataset:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=have;&lt;/P&gt;&lt;P&gt; by UnitId Year;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and then in your processing data step, you have access to the sum of a_2 as Sum_a_2, and can easily do your division, along with all of your other processing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt; merge have have_summ;&lt;/P&gt;&lt;P&gt; by UnitId Year;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;division, and other processing&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Feb 2014 14:28:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168323#M3272</guid>
      <dc:creator>TomKari</dc:creator>
      <dc:date>2014-02-10T14:28:14Z</dc:date>
    </item>
    <item>
      <title>Re: selecting only certain observations based on 2 variable values in a data step</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168324#M3273</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Like Tom said, sql will be a lot easier in this case and, in fact, can do everything in just a couple of lines.&amp;nbsp; Here is the sql code and yet another way to do it in a datastep:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create table want as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select *,a_2/sum(a_2) as f_5&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by unitid,year&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; order by year,unitid,code&lt;/P&gt;&lt;P&gt;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*or*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by unitid year code;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (drop=sum_f_5);&lt;/P&gt;&lt;P&gt;&amp;nbsp; do until (last.year);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have (where=(code ne 0));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by unitid year;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sum_f_5=ifn(first.year,a_2,sum(sum_f_5,a_2));&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do until (last.year);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by unitid year;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; f_5=a_2/sum_f_5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by year unitid code;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Feb 2014 15:07:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/selecting-only-certain-observations-based-on-2-variable-values/m-p/168324#M3273</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2014-02-10T15:07:58Z</dc:date>
    </item>
  </channel>
</rss>

