<?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: Assigning values based on values in other rows in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Assigning-values-based-on-values-in-other-rows/m-p/393772#M94860</link>
    <description>&lt;P&gt;proc sql;&lt;BR /&gt;create table WANTas&lt;BR /&gt;select a.addname,a.addtype,a.placement_type,&lt;BR /&gt;b.placement_tactic&lt;BR /&gt;from HAVE&amp;nbsp;(where=(placement_tactic is missing and addtype='Default')) a left join&lt;BR /&gt;&lt;SPAN&gt;HAVE&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(where=(placement_tactic is not missing and addtype ^='Default')) b&lt;BR /&gt;on a.placement_type=b.placement_type;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;insert into&amp;nbsp;WANT&lt;/P&gt;&lt;P&gt;&amp;nbsp; select * from &lt;SPAN&gt;HAVE&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(where=(placement_tactic is not missing and addtype ^='Default'));&lt;/SPAN&gt;&lt;BR /&gt;quit;&lt;/P&gt;</description>
    <pubDate>Thu, 07 Sep 2017 07:31:40 GMT</pubDate>
    <dc:creator>ShiroAmada</dc:creator>
    <dc:date>2017-09-07T07:31:40Z</dc:date>
    <item>
      <title>Assigning values based on values in other rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-values-based-on-values-in-other-rows/m-p/188334#M35615</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;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 12.0pt; background: white;"&gt;&lt;SPAN style="font-size: 10pt; color: #000000;"&gt;I'm trying to assign values based on values in other rows – having trouble with syntax. Below are two data sets -&amp;nbsp; one is what I start with and the other is what I'm trying to accomplish.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 12.0pt; background: white;"&gt;&lt;SPAN style="font-size: 10pt; color: #000000;"&gt;Here is my criteria/logic:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 12.0pt; background: white;"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; line-height: 1.5em;"&gt;I have to assign correct Placement_tactic to Adddnames.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 12.0pt; background: white;"&gt;&lt;SPAN style="font-size: 10pt; color: #000000;"&gt;If Placement_tactic is missing and AddType is =Default then: &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;1. &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;I need to look at Placement_Type&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;2. &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;Find the Placement_Type in other rows&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;3. &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;If Placement_Tactic is populated&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;4. &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;Then set placement_tactic to the same as Placement_Type&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;5. &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;If AddType is not ‘Default’ leave alone – don’t change Placement_Tactic&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10pt; color: #000000;"&gt;Here is my code so far:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: #000000; font-size: 10pt;"&gt;data want; set have;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: #000000; font-size: 10pt;"&gt;retain _tactic; &lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: #000000;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;by &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;Placement_Type&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: #000000; font-size: 10pt;"&gt;if FIRST. Placement_Type then _tactic=Placement_Tactic;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: #000000; font-size: 10pt;"&gt;else Placement_Tactic=_tactic; run; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10pt; color: #000000;"&gt;The issues that I'm having: &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;1. If &lt;SPAN style="background: white;"&gt;AddType is not ‘Default’&amp;nbsp; &lt;/SPAN&gt; then Placement_Tactic is be changed to FIRST.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt;"&gt; Placement.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;2. It's possible that &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;Placement_tactic&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; can be missing and &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;AddType ^= Default&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; at the same time. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;3.&amp;nbsp; It's possible that there's no populated &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;Placement_tactic &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;for a certain &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;Placement_type&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;4.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; There can be other &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;AddTypes&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; with missing &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;Placement_tactic&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;5. Again only concerned coding&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;AddTypes=default but &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;FIRST.Placement may&amp;nbsp; be an&amp;nbsp; observation which is not &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;AddTypes&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; =default so the Placement_Tactic still needs to be based off the Placement_Type&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; color: #000000;"&gt;6. In some occasions when AddType is =Default&amp;nbsp; and Placement_Tactic has already been coded and does not need to be changed. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;data have;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; infile cards missover;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; input AddNAme $16. AddType $9. Placement_Type $34. Placement_tactic $16. ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;cards; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AOD_1H_BAU_ACQ_DMP_COM_RT_CPM&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AOD_1H_BAU_ACQ_DMP_COM_RT_CPM&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AOD_1H_BAU_ACQ_DMP_COM_RT_CPM&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AD.COM_1H_BAU_ACQ_C2C_BAU_DISPLAY &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AD.COM_1H_BAU_ACQ_C2C_BAU_DISPLAY &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AD.COM_1H_BAU_ACQ_C2C_BAU_DISPLAY &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default AOD_1H_BAU_ACQ_MLP_CPM&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default AOD_1H_BAU_ACQ_MLP_CPM&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default AOD_1H_BAU_ACQ_MLP_CPM&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default ROCKET_FUEL_1H&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default ROCKET_FUEL_1H&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default ROCKET_FUEL_1H&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;RedAdd100 standard AOD_1H_BAU_ACQ_DMP_COM_RT_CPM Acquisition&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;RedAdd100 standard AOD_1H_BAU_ACQ_DMP_COM_RT_CPM Acquisition&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;BlueAdd100 standard AD.COM_1H_BAU_ACQ_C2C_BAU_DISPLAY Moblie&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;BlueAdd100 standard AD.COM_1H_BAU_ACQ_C2C_BAU_DISPLAY Moblie&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;SaleAd standard AOD_1H_BAU_ACQ_MLP_CPM Remarketing&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;SaleAd standard AOD_1H_BAU_ACQ_MLP_CPM Remarketing&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;SaleAd standard ROCKET_FUEL_1H PreRoll&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;SaleAd standard ROCKET_FUEL_1H PreRoll&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;This is what I'm trying to accomplish:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;data WANT;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; infile cards missover;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; input AddNAme $16. AddType $9. Placement_Type $34. Placement_tactic $16. ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;cards; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AOD_1H_BAU_ACQ_DMP_COM_RT_CPM Acquisition&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AOD_1H_BAU_ACQ_DMP_COM_RT_CPM Acquisition&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AOD_1H_BAU_ACQ_DMP_COM_RT_CPM Acquisition &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AD.COM_1H_BAU_ACQ_C2C_BAU_DISPLAY Moblie&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AD.COM_1H_BAU_ACQ_C2C_BAU_DISPLAY Moblie&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;160x600DefaultAd Default AD.COM_1H_BAU_ACQ_C2C_BAU_DISPLAY Moblie&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default AOD_1H_BAU_ACQ_MLP_CPM Remarketing&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default AOD_1H_BAU_ACQ_MLP_CPM Remarketing&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default AOD_1H_BAU_ACQ_MLP_CPM Remarketing&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default ROCKET_FUEL_1H PreRoll &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default ROCKET_FUEL_1H PreRoll &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;300x600DefaultAd Default ROCKET_FUEL_1H PreRoll &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;RedAdd100 standard AOD_1H_BAU_ACQ_DMP_COM_RT_CPM Acquisition&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;RedAdd100 standard AOD_1H_BAU_ACQ_DMP_COM_RT_CPM Acquisition&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;BlueAdd100 standard AD.COM_1H_BAU_ACQ_C2C_BAU_DISPLAY Moblie&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;BlueAdd100 standard AD.COM_1H_BAU_ACQ_C2C_BAU_DISPLAY Moblie&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;SaleAd standard AOD_1H_BAU_ACQ_MLP_CPM Remarketing&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;SaleAd standard AOD_1H_BAU_ACQ_MLP_CPM Remarketing&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;SaleAd standard ROCKET_FUEL_1H PreRoll&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;SaleAd standard ROCKET_FUEL_1H PreRoll&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Apr 2014 21:53:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-values-based-on-values-in-other-rows/m-p/188334#M35615</guid>
      <dc:creator>Jasonnyc</dc:creator>
      <dc:date>2014-04-21T21:53:32Z</dc:date>
    </item>
    <item>
      <title>Re: Assigning values based on values in other rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-values-based-on-values-in-other-rows/m-p/393772#M94860</link>
      <description>&lt;P&gt;proc sql;&lt;BR /&gt;create table WANTas&lt;BR /&gt;select a.addname,a.addtype,a.placement_type,&lt;BR /&gt;b.placement_tactic&lt;BR /&gt;from HAVE&amp;nbsp;(where=(placement_tactic is missing and addtype='Default')) a left join&lt;BR /&gt;&lt;SPAN&gt;HAVE&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(where=(placement_tactic is not missing and addtype ^='Default')) b&lt;BR /&gt;on a.placement_type=b.placement_type;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;insert into&amp;nbsp;WANT&lt;/P&gt;&lt;P&gt;&amp;nbsp; select * from &lt;SPAN&gt;HAVE&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;(where=(placement_tactic is not missing and addtype ^='Default'));&lt;/SPAN&gt;&lt;BR /&gt;quit;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Sep 2017 07:31:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-values-based-on-values-in-other-rows/m-p/393772#M94860</guid>
      <dc:creator>ShiroAmada</dc:creator>
      <dc:date>2017-09-07T07:31:40Z</dc:date>
    </item>
  </channel>
</rss>

