<?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: SAS array help in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499259#M132819</link>
    <description>&lt;P&gt;no_of_cw is uninitialized, use cw.&lt;/P&gt;
&lt;P&gt;The arrays need to be defined with an explicit number of elements. Select a sufficient number according to the maximum elements in a and date.&lt;/P&gt;</description>
    <pubDate>Wed, 26 Sep 2018 20:50:55 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2018-09-26T20:50:55Z</dc:date>
    <item>
      <title>SAS array help</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499258#M132818</link>
      <description>&lt;P&gt;Dear,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I need help in second data step where I created variable (CW). The array reference is not working. How to give an array reference depends on number of responses. Thank you&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;output needed:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;dt1&amp;nbsp; &amp;nbsp; &amp;nbsp;response1&amp;nbsp;&lt;SPAN&gt;dt2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;response2&amp;nbsp; dt3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;response3&amp;nbsp; &amp;nbsp;dt4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response4&amp;nbsp; &amp;nbsp;dt5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response5&amp;nbsp; &amp;nbsp; &amp;nbsp;dt6&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;21109&amp;nbsp; &amp;nbsp; PR&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 21171&amp;nbsp; &amp;nbsp; &amp;nbsp;PR&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;21227&amp;nbsp; &amp;nbsp; PR&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 21290&amp;nbsp; &amp;nbsp; &amp;nbsp;PR&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;21350&amp;nbsp; &amp;nbsp; &amp;nbsp;CR&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;21433&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CR&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;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data one;&lt;BR /&gt;input a $1-26 date $27-80;
datalines;
PR PR PR PR CR CR          21109 21171 21227 21290 21350 21433
PR CR CR CR CR CR CR CR CR 20803 20853 20915 20978 21041 21105 21188 21279 21357
CR CR CR CR CR             21119 21187 21243 21312 21370
CR CR PR                   21272 21329 21384
;

data two;
set one;
cw = countw(a);
array dt{*} ;
array response{*};
do i=1 to no_of_cw;
if scan(a,i) in ('CR' 'PR') then  dt(i)=scan(date,i);
response(i)=scan(a,i);
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Sep 2018 20:42:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499258#M132818</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2018-09-26T20:42:35Z</dc:date>
    </item>
    <item>
      <title>Re: SAS array help</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499259#M132819</link>
      <description>&lt;P&gt;no_of_cw is uninitialized, use cw.&lt;/P&gt;
&lt;P&gt;The arrays need to be defined with an explicit number of elements. Select a sufficient number according to the maximum elements in a and date.&lt;/P&gt;</description>
      <pubDate>Wed, 26 Sep 2018 20:50:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499259#M132819</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-09-26T20:50:55Z</dc:date>
    </item>
    <item>
      <title>Re: SAS array help</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499263#M132821</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data two;
set one;
cw = countw(a);
array dt{cw};
array response{cw};
do i=1 to cw;
if scan(a,i) in ('CR' 'PR') then  dt(i)=scan(date,i);
response(i)=scan(a,i);
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I just tried this. This is not working. Thank you for reply. Please&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Sep 2018 20:56:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499263#M132821</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2018-09-26T20:56:05Z</dc:date>
    </item>
    <item>
      <title>Re: SAS array help</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499265#M132822</link>
      <description>&lt;P&gt;Thank you I got it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Sep 2018 20:57:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499265#M132822</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2018-09-26T20:57:58Z</dc:date>
    </item>
    <item>
      <title>Re: SAS array help</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499270#M132824</link>
      <description>&lt;P&gt;You have three main issues, one conceptual, two syntax issues.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You cannot have an array &lt;STRIKE&gt;reference&lt;/STRIKE&gt;&amp;nbsp;size that changes for each line. Therefore your array &lt;STRIKE&gt;reference &lt;/STRIKE&gt; size&amp;nbsp;needs to be as large as possible to hold all your data. Since you have 1 to 26 (27 spaces) and each character is 2+space, you have 27/3, you would have 9 maximum. Or whatever your math works out to be. You can control the loop counter to only fill that information in, but the array declaration and size needs to be predetermined.&lt;/LI&gt;
&lt;LI&gt;There is a&amp;nbsp;variable, no_of_cw, that is not created anywhere. There should be a note in your log to that effect.&lt;/LI&gt;
&lt;LI&gt;You also need to specify the type of your array ie characters. If you want to convert it to numeric, declare it as numeric, but you do need to convert it as well.&lt;/LI&gt;
&lt;/UL&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data two;
set one;
*Number of items in list;
cw = countw(a);

 
array dt{9} $;
array response{9} $;

do i=1 to cw;
if scan(a,i) in ('CR' 'PR') then  dt(i)=scan(date,i);
response(i)=scan(a,i);
end;


run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Pretty sure I've mentioned this before, but if you comment your code it really helps. Both us and you, because then we understand what you're trying to do and from a personal standpoint, I find if I understand the process enough to write comments, I usually avoid a lot of&amp;nbsp;trivial errors like referencing the wrong variable and such.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;EDIT: fix reference vs size for clarity.&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>Wed, 26 Sep 2018 21:11:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499270#M132824</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-09-26T21:11:29Z</dc:date>
    </item>
    <item>
      <title>Re: SAS array help</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499271#M132825</link>
      <description>&lt;P&gt;You are attempting to put character values CR PR into a numeric defined array response.&lt;/P&gt;
&lt;P&gt;As was mentioned arrays must have a declared size or explicit list of variables to set membership.&lt;/P&gt;
&lt;P&gt;If you don't want "character converted to numeric" messages in the log use input.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data two;
   set one;
   array dt{9} ;
   array response{9} $ ;
   cw=countw(a);
   do i=1 to cw ;
      if scan(a,i) in ('CR' 'PR') then  dt(i)=input(scan(date,i),best.);
      response(i)=scan(a,i);
   end;
run;&lt;/PRE&gt;
&lt;P&gt;And if those are actually dates in the dt array then you might consider assigning an actual date format to the dt variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Sep 2018 21:08:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-array-help/m-p/499271#M132825</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-09-26T21:08:46Z</dc:date>
    </item>
  </channel>
</rss>

