<?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: Create variables  using values across the records in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304330#M64784</link>
    <description>Yes this works. Thanks</description>
    <pubDate>Thu, 13 Oct 2016 11:23:52 GMT</pubDate>
    <dc:creator>imabition_gmail_com</dc:creator>
    <dc:date>2016-10-13T11:23:52Z</dc:date>
    <item>
      <title>Create variables  using values across the records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304322#M64779</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;data have;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;infile cards dlm='09'x truncover;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;data have;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;infile cards dlm='09'x truncover;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;input id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;cards;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;want:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;id &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c &amp;nbsp; &amp;nbsp; &amp;nbsp; g1 &amp;nbsp; &amp;nbsp; g2 &amp;nbsp; &amp;nbsp;g3 &amp;nbsp; &amp;nbsp;g4&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp;0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;So,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If a--c is &amp;gt;=1 then g1=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If a--c is &amp;gt;=2 then g2=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If a--c is &amp;gt;=3 then g3=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If a--c is &amp;gt;=4 then g4=1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;code:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;array input(*) a--c;&lt;BR /&gt;do i=1 to dim(input);&lt;BR /&gt;if input{_n_} ge 1 then g1=1;&lt;BR /&gt;if input{_n_} ge 2 then g2=1;&lt;BR /&gt;if input{_n_} ge 3 then g3=1;&lt;BR /&gt;if input{_n_} ge 4 then g4=1;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Oct 2016 20:08:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304322#M64779</guid>
      <dc:creator>imabition_gmail_com</dc:creator>
      <dc:date>2016-10-13T20:08:06Z</dc:date>
    </item>
    <item>
      <title>Re: Create variables  using values across the records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304325#M64780</link>
      <description>&lt;P&gt;Use i instead of _n_ to index the array.&lt;/P&gt;
&lt;P&gt;_n_ is the number of the current data step iteration.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Oct 2016 11:16:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304325#M64780</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-10-13T11:16:24Z</dc:date>
    </item>
    <item>
      <title>Re: Create variables  using values across the records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304327#M64781</link>
      <description>&lt;P&gt;Have you actually taken &lt;U&gt;one&lt;/U&gt; look at the log of your step?&lt;/P&gt;
&lt;P&gt;input cannot be used as the name for an array, as it is also the name of a standard SAS function.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Oct 2016 11:19:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304327#M64781</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-10-13T11:19:21Z</dc:date>
    </item>
    <item>
      <title>Re: Create variables  using values across the records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304330#M64784</link>
      <description>Yes this works. Thanks</description>
      <pubDate>Thu, 13 Oct 2016 11:23:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304330#M64784</guid>
      <dc:creator>imabition_gmail_com</dc:creator>
      <dc:date>2016-10-13T11:23:52Z</dc:date>
    </item>
    <item>
      <title>Re: Create variables  using values across the records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304331#M64785</link>
      <description>&lt;P&gt;Since you might want to later expand the groups, here's dynamic code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input id a b c;
cards;
1 2 2 1
2 3 1 0
3 1 0 4
4 1 2 3
5 3 2 1
;
run;



%macro execute(maxgroups);
data want;
set have;
array vars(*) a--c;
%do i = 1 %to &amp;amp;maxgroups.;
g&amp;amp;i. = 0;
%end;
do i=1 to dim(vars);
%do i = 1 %to &amp;amp;maxgroups.;
  if vars{i} ge &amp;amp;i. then g&amp;amp;i. = 1;
%end;
end;
drop i;
run;
%mend;
%execute(4)
proc print noobs;run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;PRE&gt;id    a    b    c    g1    g2    g3    g4

 1    2    2    1     1     1     0     0
 2    3    1    0     1     1     1     0
 3    1    0    4     1     1     1     1
 4    1    2    3     1     1     1     0
 5    3    2    1     1     1     1     0
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Oct 2016 11:26:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304331#M64785</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-10-13T11:26:34Z</dc:date>
    </item>
    <item>
      <title>Re: Create variables  using values across the records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304332#M64786</link>
      <description>&lt;P&gt;Also, what does a--c mean? That doesn't have meaning in the context you're using it in.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You probably want either the max( of a--c) or sum(). I'm guessing max based on context.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would suggest finding max and looping up to that value to set G vars to 1.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Array gv(4) g1-G4 (4*0);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;max_count = max(a,b,c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;do i=1 max_count;&lt;/P&gt;
&lt;P&gt;g(i) = 1;&lt;/P&gt;
&lt;P&gt;end;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Oct 2016 11:27:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-variables-using-values-across-the-records/m-p/304332#M64786</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-10-13T11:27:47Z</dc:date>
    </item>
  </channel>
</rss>

