<?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 SAS array help needed in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237594#M43546</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I have a dataset like below. I would like to take the highest PCT (e.g. 0.82) and use its&amp;nbsp;corresponding var2 (31) and var3(35), to append to the bottom of this dataset until the PCT reach 2, but use the same var2 (31) and var3(35)value.,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am new to SAS array. Anyone could help? Thank you so much&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt;input pct var2 var3;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;0.8 1 11&lt;/P&gt;&lt;P&gt;0.81 2 22&lt;/P&gt;&lt;P&gt;0.82 31 35&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc print data=test;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　FINAL output should looks like&lt;/P&gt;&lt;P&gt;0.8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 11&lt;/P&gt;&lt;P&gt;0.81&amp;nbsp; &amp;nbsp;2 22&lt;/P&gt;&lt;P&gt;0.82 31 35&lt;/P&gt;&lt;P&gt;0.83 31 35&lt;/P&gt;&lt;P&gt;0.84 31 35&lt;/P&gt;&lt;P&gt;0.85 31 35&lt;/P&gt;&lt;P&gt;0.86 31 35&lt;/P&gt;&lt;P&gt;0.87 31 35&lt;/P&gt;&lt;P&gt;0.88 31 35&lt;/P&gt;&lt;P&gt;0.88 31 35&lt;/P&gt;&lt;P&gt;0.90 31 35&lt;/P&gt;&lt;P&gt;0.91 31 35&lt;/P&gt;&lt;P&gt;0.92 31 35&lt;/P&gt;&lt;P&gt;0.93 31 35&lt;/P&gt;&lt;P&gt;0.94 31 35&lt;/P&gt;&lt;P&gt;0.95 31 35&lt;/P&gt;&lt;P&gt;until&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31 35&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 03 Dec 2015 15:31:04 GMT</pubDate>
    <dc:creator>Memphisuser</dc:creator>
    <dc:date>2015-12-03T15:31:04Z</dc:date>
    <item>
      <title>SAS array help needed</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237594#M43546</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I have a dataset like below. I would like to take the highest PCT (e.g. 0.82) and use its&amp;nbsp;corresponding var2 (31) and var3(35), to append to the bottom of this dataset until the PCT reach 2, but use the same var2 (31) and var3(35)value.,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am new to SAS array. Anyone could help? Thank you so much&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt;input pct var2 var3;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;0.8 1 11&lt;/P&gt;&lt;P&gt;0.81 2 22&lt;/P&gt;&lt;P&gt;0.82 31 35&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc print data=test;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;　FINAL output should looks like&lt;/P&gt;&lt;P&gt;0.8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 11&lt;/P&gt;&lt;P&gt;0.81&amp;nbsp; &amp;nbsp;2 22&lt;/P&gt;&lt;P&gt;0.82 31 35&lt;/P&gt;&lt;P&gt;0.83 31 35&lt;/P&gt;&lt;P&gt;0.84 31 35&lt;/P&gt;&lt;P&gt;0.85 31 35&lt;/P&gt;&lt;P&gt;0.86 31 35&lt;/P&gt;&lt;P&gt;0.87 31 35&lt;/P&gt;&lt;P&gt;0.88 31 35&lt;/P&gt;&lt;P&gt;0.88 31 35&lt;/P&gt;&lt;P&gt;0.90 31 35&lt;/P&gt;&lt;P&gt;0.91 31 35&lt;/P&gt;&lt;P&gt;0.92 31 35&lt;/P&gt;&lt;P&gt;0.93 31 35&lt;/P&gt;&lt;P&gt;0.94 31 35&lt;/P&gt;&lt;P&gt;0.95 31 35&lt;/P&gt;&lt;P&gt;until&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31 35&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 15:31:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237594#M43546</guid>
      <dc:creator>Memphisuser</dc:creator>
      <dc:date>2015-12-03T15:31:04Z</dc:date>
    </item>
    <item>
      <title>Re: SAS array help needed</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237597#M43547</link>
      <description>&lt;P&gt;Use END to identify the end of file and then loop to 2 by 0.01.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data want;
set test end=eof;
output;

if eof then do i=pct to 2 by 0.01;
    pct=i;
    output;
end;

drop i;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 03 Dec 2015 15:39:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237597#M43547</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-12-03T15:39:32Z</dc:date>
    </item>
    <item>
      <title>Re: SAS array help needed</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237599#M43549</link>
      <description>Thank you so much for quick response, Reeza. Your solution works perfectly for me.</description>
      <pubDate>Thu, 03 Dec 2015 15:48:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237599#M43549</guid>
      <dc:creator>Memphisuser</dc:creator>
      <dc:date>2015-12-03T15:48:41Z</dc:date>
    </item>
    <item>
      <title>Re: SAS array help needed</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237645#M43565</link>
      <description>&lt;P&gt;I am really sorry to disagree with&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza﻿&lt;/a&gt;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Firstly, the intended "FINAL output" did not contain a duplicate of the last observation from dataset TEST (assuming that the "&lt;SPAN&gt;highest PCT" is always at the end).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Secondly, numeric representation issues should be taken into account. Otherwise,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/64283"&gt;@Memphisuser﻿&lt;/a&gt;&amp;nbsp;could&amp;nbsp;experience surprises when working with dataset WANT.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I mean surprises like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* Just for abbreviation, generate the list 0.83 0.84 ... 2.00 in a macro variable */

data _null_;
length numlist $600;
do i=83 to 200;
  numlist=catx(' ', numlist, put(i/100,4.2));
end;
call symput('nlist', numlist);
run;

%put &amp;amp;nlist;


/* Select the 200-83+1=118 obs. with 0.83&amp;lt;=PCT&amp;lt;=2.00 */

data sel;
set want;
if pct in (&amp;amp;nlist);
run; /* I get only 26 observations! 
        (The number is platform-dependent, though.) */
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Therefore, I would like to modify the solution as follows:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set test end=eof;
output;

if eof then do i=round(pct*100+1) to 200;
    pct=i/100;
    output;
end;

drop i;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 18:04:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237645#M43565</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2015-12-03T18:04:59Z</dc:date>
    </item>
    <item>
      <title>Re: SAS array help needed</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237673#M43570</link>
      <description>You don't have to be sorry to disagree with me, I'm frequently wrong &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;I agree with the duplicate, but that can easily be dealt with. Regarding the rounding issue, that's pretty much expected when dealing with decimal numbers.</description>
      <pubDate>Thu, 03 Dec 2015 19:17:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help-needed/m-p/237673#M43570</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-12-03T19:17:44Z</dc:date>
    </item>
  </channel>
</rss>

