<?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: put a tag base on variable condition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395946#M95563</link>
    <description>&lt;P&gt;Thank you, Astounding.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now I understand how it work. Thank for your time and guidance.&lt;/P&gt;&lt;P&gt;Really help me a lot&lt;/P&gt;</description>
    <pubDate>Thu, 14 Sep 2017 14:59:37 GMT</pubDate>
    <dc:creator>sagulolo</dc:creator>
    <dc:date>2017-09-14T14:59:37Z</dc:date>
    <item>
      <title>put a tag base on variable condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395922#M95556</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a code below:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data testing;
  infile datalines dlm='|';
  input  date $ acctno $ due $ pic $;
;
datalines;
20170801 | 12345   | 0000000 | UserA
20170802 | 12345   | 0000000 | UserA
20170803 | 12345   | 0000000 | UserX
20170804 | 12345   | 0000001 | UserA
20170805 | 12345   | 0000002 | UserC
20170806 | 12345   | 0000003 | UserC
20170807 | 12345   | 0000004 | UserA
20170802 | 22222   | 0000000 | UserX
20170803 | 22222   | 0000000 | UserB
20170804 | 22222   | 0000001 | UserA
20170805 | 22222   | 0000002 | UserA
;

proc sort data=testing;
	by acctno date;
run;

data want;
	set testing;
	by acctno date;
	retain tag;
	if first.acctno then 
		do;
			if pic NE 'UserX' then tag = 'Normal';
			else tag = 'UserX';
		end;
	else 
		tag = lag(tag);
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;and outcome as below:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;TABLE cellspacing="0" cellpadding="0" border="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;acctno&lt;/TD&gt;&lt;TD&gt;due&lt;/TD&gt;&lt;TD&gt;pic&lt;/TD&gt;&lt;TD&gt;tag&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170801&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;Normal&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170802&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170803&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;TD&gt;Normal&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170804&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170805&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;UserC&lt;/TD&gt;&lt;TD&gt;Normal&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170806&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;UserC&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170807&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;Normal&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170802&lt;/TD&gt;&lt;TD&gt;22222&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170803&lt;/TD&gt;&lt;TD&gt;22222&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;UserB&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170804&lt;/TD&gt;&lt;TD&gt;22222&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170805&lt;/TD&gt;&lt;TD&gt;22222&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can i get below output? logic is once acc's pic is UserX, then later the rest will become UserX.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE cellspacing="0" cellpadding="0" border="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;acctno&lt;/TD&gt;&lt;TD&gt;due&lt;/TD&gt;&lt;TD&gt;pic&lt;/TD&gt;&lt;TD&gt;tag&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170801&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;Normal&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170802&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;Normal&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170803&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170804&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170805&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;UserC&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170806&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;UserC&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170807&lt;/TD&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170802&lt;/TD&gt;&lt;TD&gt;22222&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170803&lt;/TD&gt;&lt;TD&gt;22222&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;UserB&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170804&lt;/TD&gt;&lt;TD&gt;22222&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20170805&lt;/TD&gt;&lt;TD&gt;22222&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;UserA&lt;/TD&gt;&lt;TD&gt;UserX&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank in advance&lt;/P&gt;</description>
      <pubDate>Thu, 14 Sep 2017 14:24:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395922#M95556</guid>
      <dc:creator>sagulolo</dc:creator>
      <dc:date>2017-09-14T14:24:58Z</dc:date>
    </item>
    <item>
      <title>Re: put a tag base on variable condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395931#M95558</link>
      <description>&lt;P&gt;If you study the documentation closely, you'll see that LAG does not retrieve the value from the previous observation.&amp;nbsp; Instead, it retrieves the value from the last time that the LAG function executed.&amp;nbsp; It's tricky.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The easiest fix would be to change the ELSE statement:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;else if pic='UserX' then tag='UserX';&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Sep 2017 14:34:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395931#M95558</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-09-14T14:34:00Z</dc:date>
    </item>
    <item>
      <title>Re: put a tag base on variable condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395940#M95560</link>
      <description>&lt;P&gt;Astounding, thank you so much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would you mind to tell me how it work, by study the else code your give, Im confuse how SAS run the data already.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;</description>
      <pubDate>Thu, 14 Sep 2017 14:46:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395940#M95560</guid>
      <dc:creator>sagulolo</dc:creator>
      <dc:date>2017-09-14T14:46:50Z</dc:date>
    </item>
    <item>
      <title>Re: put a tag base on variable condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395943#M95562</link>
      <description>&lt;P&gt;One of the keys to how this works is the RETAIN statement.&amp;nbsp; Once TAG is set, it doesn't need to be re-set on each observation.&amp;nbsp; RETAIN just holds on to the value that was already there.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So on the first observation for each account, set the initial value for TAG.&amp;nbsp; Then just let it sit there until "UserX" is found.&amp;nbsp; For "UserX", change TAG.&amp;nbsp; Then as before ... let the current value (which is now "UserX")&amp;nbsp;just sit there.&lt;/P&gt;</description>
      <pubDate>Thu, 14 Sep 2017 14:54:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395943#M95562</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-09-14T14:54:44Z</dc:date>
    </item>
    <item>
      <title>Re: put a tag base on variable condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395946#M95563</link>
      <description>&lt;P&gt;Thank you, Astounding.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now I understand how it work. Thank for your time and guidance.&lt;/P&gt;&lt;P&gt;Really help me a lot&lt;/P&gt;</description>
      <pubDate>Thu, 14 Sep 2017 14:59:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/put-a-tag-base-on-variable-condition/m-p/395946#M95563</guid>
      <dc:creator>sagulolo</dc:creator>
      <dc:date>2017-09-14T14:59:37Z</dc:date>
    </item>
  </channel>
</rss>

