<?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: Programming Question in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655075#M196618</link>
    <description>&lt;P&gt;Hi, Yes&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;customer&lt;/TD&gt;&lt;TD&gt;a1&lt;/TD&gt;&lt;TD&gt;a2&lt;/TD&gt;&lt;TD&gt;a3&lt;/TD&gt;&lt;TD&gt;a4&lt;/TD&gt;&lt;TD&gt;a5&lt;/TD&gt;&lt;TD&gt;a6&lt;/TD&gt;&lt;TD&gt;indicator&lt;/TD&gt;&lt;TD&gt;document&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3200&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3500&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I add it to the example&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for you help&lt;/P&gt;</description>
    <pubDate>Tue, 09 Jun 2020 07:35:14 GMT</pubDate>
    <dc:creator>jony123</dc:creator>
    <dc:date>2020-06-09T07:35:14Z</dc:date>
    <item>
      <title>Programming Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655021#M196614</link>
      <description>&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;Lets say i have this table:&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;customer&lt;/TD&gt;&lt;TD&gt;a1&lt;/TD&gt;&lt;TD&gt;a2&lt;/TD&gt;&lt;TD&gt;a3&lt;/TD&gt;&lt;TD&gt;a4&lt;/TD&gt;&lt;TD&gt;a5&lt;/TD&gt;&lt;TD&gt;a6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3200&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3500&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create new column , an indicator that return &lt;STRONG&gt;1&lt;/STRONG&gt; if :&lt;/P&gt;&lt;P&gt;1. a1=a2=a3=a4=a5&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;or&amp;nbsp;&lt;/STRONG&gt; the difference between (a1 to a6 )is no more then 5% difference from the minimum number.&lt;/P&gt;&lt;P&gt;in this example , in row numer 1,2&amp;nbsp; the min number is 3000 ,soo the diff is +-150&lt;/P&gt;&lt;P&gt;2. else 0&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;customer&lt;/TD&gt;&lt;TD&gt;a1&lt;/TD&gt;&lt;TD&gt;a2&lt;/TD&gt;&lt;TD&gt;a3&lt;/TD&gt;&lt;TD&gt;a4&lt;/TD&gt;&lt;TD&gt;a5&lt;/TD&gt;&lt;TD&gt;a6&lt;/TD&gt;&lt;TD&gt;indicator&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3200&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3500&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any ideas?&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jun 2020 07:15:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655021#M196614</guid>
      <dc:creator>jony123</dc:creator>
      <dc:date>2020-06-09T07:15:00Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655073#M196617</link>
      <description>&lt;P&gt;So it seems you have multiple observations per customer. Is there an additional column that identifies the observations?&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jun 2020 07:31:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655073#M196617</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-06-09T07:31:50Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655075#M196618</link>
      <description>&lt;P&gt;Hi, Yes&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;customer&lt;/TD&gt;&lt;TD&gt;a1&lt;/TD&gt;&lt;TD&gt;a2&lt;/TD&gt;&lt;TD&gt;a3&lt;/TD&gt;&lt;TD&gt;a4&lt;/TD&gt;&lt;TD&gt;a5&lt;/TD&gt;&lt;TD&gt;a6&lt;/TD&gt;&lt;TD&gt;indicator&lt;/TD&gt;&lt;TD&gt;document&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3200&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3500&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3050&lt;/TD&gt;&lt;TD&gt;3100&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;qqq&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I add it to the example&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for you help&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jun 2020 07:35:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655075#M196618</guid>
      <dc:creator>jony123</dc:creator>
      <dc:date>2020-06-09T07:35:14Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655122#M196619</link>
      <description>&lt;P&gt;May be I'm missing to understand part of the problem - or could it be as simple as below.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set have;
  array a_vars {*} a1-a6;
  array minmax {2} 8 _temporary_;
  minmax[1]=min(of a_vars[*]);
  minmax[2]=max(of a_vars[*]);
  indicator= ( abs((minmax[2]-minmax[1])/minmax[1])&amp;gt;0.05 );
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jun 2020 07:44:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655122#M196619</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2020-06-09T07:44:09Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655191#M196620</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/235130"&gt;@jony123&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can try this:&lt;/P&gt;
&lt;P&gt;-&amp;gt; you can adapt the allowed percentage of difference from the minimum value in the %let statement&lt;/P&gt;
&lt;P&gt;-&amp;gt; in the array, all variable beginning with an 'a' are referenced. You can specify a1-a6 if it makes more sense.&lt;/P&gt;
&lt;P&gt;Best,&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let alpha = .05;

data want;
	set have;
	array _a(*) a:;
	flag=1;
	do i=1 to dim(_a);
		if min(of _a(*))*(1-&amp;amp;alpha) &amp;gt; _a(i) or min(of _a(*))*(1+&amp;amp;alpha) &amp;lt; _a(i)then flag=0;
	end;
	drop i;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 09 Jun 2020 07:59:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655191#M196620</guid>
      <dc:creator>ed_sas_member</dc:creator>
      <dc:date>2020-06-09T07:59:47Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655229#M196623</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/235130"&gt;@jony123&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data ps;&lt;BR /&gt;input customer a1 a2 a3 a4 a5 a6;&lt;BR /&gt;datalines;&lt;BR /&gt;qqq 3000 3000 3200 3050 3500 3100&lt;BR /&gt;qqq 3000 3100 3050 3050 3050 3100&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;select&lt;BR /&gt;CASE WHEN a1 = a2 = a3 = a4 = a5 =a6 THEN '1' ELSE '0'&lt;BR /&gt;END AS indicator&lt;BR /&gt;from ps;&lt;BR /&gt;quit;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jun 2020 08:17:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655229#M196623</guid>
      <dc:creator>Devender_Palsa</dc:creator>
      <dc:date>2020-06-09T08:17:27Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655256#M196624</link>
      <description>&lt;P&gt;Thanks works perfect&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jun 2020 08:28:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655256#M196624</guid>
      <dc:creator>jony123</dc:creator>
      <dc:date>2020-06-09T08:28:17Z</dc:date>
    </item>
    <item>
      <title>Re: Programming Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655463#M196634</link>
      <description>&lt;P&gt;I asked because this allows transposing to the better long format, where such issues can be coded without regard for the number of variables, and without needing dynamic code if the number of variables is not fixed:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines dlm='09'x;
input customer $ a1 a2 a3 a4 a5 a6 document;
datalines;
qqq	3000	3000	3200	3050	3500	3100	6
qqq	3000	3100	3050	3050	3050	3100	7
qqq	4000	4000	4000	4000	4000	4000	8
;

proc transpose data=have out=long (rename=(col1=value _name_=a));
by customer document;
var a:;
run;

proc sql;
create table want as
  select
    customer,
    document,
    case
      when max(value) le min(value) * 1.05
      /* this also covers equality of all values */
      then 1
      else 0
    end as indicator
  from long
  group by customer, document
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 09 Jun 2020 10:49:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Programming-Question/m-p/655463#M196634</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-06-09T10:49:26Z</dc:date>
    </item>
  </channel>
</rss>

