<?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: Find maximum value of each array variable and assign it to last row cell in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579609#M164530</link>
    <description>Hello, Jag. Thank you for your kindly help. The code works well. But if there any approach to solve it by Only data step? Thanks again.</description>
    <pubDate>Wed, 07 Aug 2019 09:02:08 GMT</pubDate>
    <dc:creator>Dominus</dc:creator>
    <dc:date>2019-08-07T09:02:08Z</dc:date>
    <item>
      <title>Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579587#M164516</link>
      <description>&lt;P&gt;Hello, all.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a dataset looks like below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;data test;
    input Var1-Var11@;
cards;
0 1 2 3 4 5 6 7 8 9 .
9 0 1 2 3 4 5 6 7 8 .
8 9 0 1 2 3 4 5 6 7 .
. . . . . . . . . . .
;
run;&lt;/PRE&gt;&lt;P&gt;And my purpose is to find out each row &amp;amp; column maximum values and to assign the maximum value at the corresponding rows and columns. (Place the find out maximum values at the placeholder "."&amp;nbsp; in the "test" dataset.)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried it below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data findmax;
    set test;
    Var11 = max(of Var1-Var10);
    array arr[*] _numeric_;
    do i = 1 to 11;
        if arr[i] = . then arr[i] = max(of arr[i]);
    end;
    drop i;
    put arr[2];
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my solution, each row maximum works well. But each column maximum value was still missing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But if I assign some exact number to each last column cell, the code works well. Like:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data findmax;
    set test;
    Var11 = max(of Var1-Var10);
    array arr[*] _numeric_;
    do i = 1 to 11;
        if arr[i] = . then arr[i] = 99;
    end;
    drop i;
    put arr[2];
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;A minor difference of my code (&amp;nbsp;&lt;FONT color="#FF6600"&gt;arr[ i ]&amp;nbsp;&lt;CODE class=" language-sas"&gt;= max(of arr[i])&lt;/CODE&gt;&lt;/FONT&gt;&amp;nbsp; vs.&amp;nbsp; &lt;FONT color="#FF6600"&gt;arr[ i ]&amp;nbsp;&lt;CODE class=" language-sas"&gt;= 99 &lt;FONT color="#000000"&gt;)&lt;/FONT&gt;&amp;nbsp;&lt;FONT color="#000000"&gt;makes such different output. Is there any reason in this case and how can I achieve the purpose.&lt;/FONT&gt;&lt;/CODE&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF6600"&gt;&lt;CODE class=" language-sas"&gt;&lt;FONT color="#000000"&gt;Thanks, best regards.&lt;/FONT&gt;&lt;/CODE&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Aug 2019 07:09:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579587#M164516</guid>
      <dc:creator>Dominus</dc:creator>
      <dc:date>2019-08-07T07:09:21Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579597#M164519</link>
      <description>&lt;P&gt;Try:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
    input Var1-Var11;
cards;
0 1 2 3 4 5 6 7 8 3 .
9 0 1 2 3 4 5 6 7 8 .
8 9 0 1 2 3 4 5 6 7 .
;
run;


data findmax;
    set test;
    Var11 = max(of Var1-Var10);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 07 Aug 2019 08:30:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579597#M164519</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2019-08-07T08:30:45Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579598#M164520</link>
      <description>&lt;P&gt;Pay attention, arr[i] is just one variable, then &lt;STRONG&gt;max(arr[i])&lt;/STRONG&gt; = &lt;STRONG&gt;arr[i]&lt;/STRONG&gt; always.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;May be you meant to code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data findmax;
    set test;
    Var11 = max(of Var1-Var10);
    array arr[*] _numeric_;
    do i = 1 to 11;
        if arr[i] = . then arr[i] = var11; /* line changed */
    end;
    drop i;
    put arr[2];
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;and do you realy want to assign the max value instead missing value, which is the lowest value ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Aug 2019 08:32:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579598#M164520</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2019-08-07T08:32:25Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579599#M164521</link>
      <description>&lt;P&gt;Thank you for your reminder. What I want is just like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;0 1 2 3 4 5 6 7 8 9 9
9 0 1 2 3 4 5 6 7 8 9
8 9 0 1 2 3 4 5 6 7 9
9 9 2 3 4 5 6 7 8 9 9&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Aug 2019 08:41:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579599#M164521</guid>
      <dc:creator>Dominus</dc:creator>
      <dc:date>2019-08-07T08:41:10Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579602#M164524</link>
      <description>Thank you for your reply.&lt;BR /&gt;Yes, as you say. The right dots are replaced in this way. But the bottom dots still need to be filled.</description>
      <pubDate>Wed, 07 Aug 2019 08:43:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579602#M164524</guid>
      <dc:creator>Dominus</dc:creator>
      <dc:date>2019-08-07T08:43:23Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579603#M164525</link>
      <description>&lt;P&gt;I have changed a value in the first row to have max = 8;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Are you interested in getting the maximum of each column including the 11-th column?&lt;/P&gt;</description>
      <pubDate>Wed, 07 Aug 2019 08:45:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579603#M164525</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2019-08-07T08:45:49Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579604#M164526</link>
      <description>&lt;P&gt;You may try the below approach&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
    input Var1-Var10 ;
cards;
0 1 2 3 4 5 6 7 8 9
9 0 1 2 3 4 5 6 7 8
8 9 0 1 2 3 4 5 6 7
;
run;

proc means data=test noprint;
var var1-var10;
output out=test2(where=(_stat_='MAX'));
run;

data want;
set test test2;
var11=max(of var1-var10);
drop _freq_ _stat_ _type_;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 07 Aug 2019 08:49:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579604#M164526</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2019-08-07T08:49:09Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579608#M164529</link>
      <description>Yes, including the 11-th column. And I forgot a requirement： Only data step allowed.</description>
      <pubDate>Wed, 07 Aug 2019 08:59:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579608#M164529</guid>
      <dc:creator>Dominus</dc:creator>
      <dc:date>2019-08-07T08:59:09Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579609#M164530</link>
      <description>Hello, Jag. Thank you for your kindly help. The code works well. But if there any approach to solve it by Only data step? Thanks again.</description>
      <pubDate>Wed, 07 Aug 2019 09:02:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579609#M164530</guid>
      <dc:creator>Dominus</dc:creator>
      <dc:date>2019-08-07T09:02:08Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579610#M164531</link>
      <description>&lt;P&gt;Yes it is possible with the below code, hope it helps&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
    input Var1-Var10 ;
cards;
0 1 2 3 4 5 6 7 8 9
9 0 1 2 3 4 5 6 7 8
8 9 0 1 2 3 4 5 6 7
;
run;

data want;
set test end=eof;
var11=max(of var1-var10);
output;
retain maxvar1-maxvar10;
array vars(10) var1-var10;
array maxvars(10) maxvar1-maxvar10;
do i = 1 to 10;
if vars(i)&amp;gt; maxvars(i) then maxvars(i)=vars(i);
vars(i)=maxvars(i);
end;
var11=max(of maxvar1-maxvar10);
if eof then output;
drop maxvar: i;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 07 Aug 2019 09:12:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579610#M164531</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2019-08-07T09:12:42Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579613#M164533</link>
      <description>Thank you Jag. Your solution are very helpful. Thanks again.&lt;BR /&gt;&lt;BR /&gt;And BTW, thanks for all participants' help.</description>
      <pubDate>Wed, 07 Aug 2019 09:22:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579613#M164533</guid>
      <dc:creator>Dominus</dc:creator>
      <dc:date>2019-08-07T09:22:59Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579648#M164554</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/284200"&gt;@Dominus&lt;/a&gt;&amp;nbsp; Sorry, Too late to the party as we were sleeping in EDT time&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;FWIW&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data test;
    input Var1-Var10 ;
cards;
0 1 2 3 4 5 6 7 8 9
9 0 1 2 3 4 5 6 7 8
8 9 0 1 2 3 4 5 6 7
;
run;

data want;
do _n_=1 by 1 until(z);
 set test end=z;
 array v var:;
 array t(3,10) _temporary_;
  do _i=1 to 10;
   t(_n_,_i)=v(_i);
   end;
  output;
end;
call missing(of v(*));
do _j=1 to 10;
 do _k=1 to 3;
    v(_j)=max(v(_j), t(_k,_j));
 end;
end;
output;
drop _:;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Aug 2019 12:50:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579648#M164554</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-08-07T12:50:29Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579673#M164567</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data test;
    input Var1-Var10 ;
cards;
0 1 2 3 4 5 6 7 8 9
9 0 1 2 3 4 5 6 7 8
8 9 0 1 2 3 4 5 6 7
;
run;

data want;
do until(z);
 set test end=z;
 array v var:;
 array t(10) _temporary_ ;
 do _n_=1 to dim(v);
 t(_n_)=t(_n_) max v(_n_);
 end;
 output;
end;
call pokelong(peekclong(addrlong(t(1)),80),addrlong(v(1)),80);
output;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 07 Aug 2019 15:23:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579673#M164567</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-08-07T15:23:21Z</dc:date>
    </item>
    <item>
      <title>Re: Find maximum value of each array variable and assign it to last row cell</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579775#M164631</link>
      <description>Hello &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;, many thanks for your kindly help. These two solutions let me benefit a lot. And it's a long way for me to learn SAS.</description>
      <pubDate>Thu, 08 Aug 2019 02:14:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-maximum-value-of-each-array-variable-and-assign-it-to-last/m-p/579775#M164631</guid>
      <dc:creator>Dominus</dc:creator>
      <dc:date>2019-08-08T02:14:34Z</dc:date>
    </item>
  </channel>
</rss>

