<?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 Store values temporary arrays in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680923#M205906</link>
    <description>&lt;P&gt;&lt;SPAN&gt;I want to store values of ID in array when status is PROBATION. After that, I want to look up in the table the field ID that are in array to create a new record of them With the status changed (I want to maintain the original and the new record)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input agreement  $10.      id         status$15.    ;
datalines;
0002255                         1       PROBATION   
0002255                         2       NORMAL      
0007777                         3       NORMAL    
0007777                         4       NORMAL    
0007777                         5       NORMAL      
0008888                         6       PROBATION   
0008888                         7       NORMAL      
0008888                         8       NORMAL      
run;

data want (drop=i);
  set have;
 /* by agreement;*/
  output;
  j=0;
  i=0;
  retain j;
  retain i;
  array ids [1000] _temporary_;
  array var {1} id ;
 

  if status='PROBATION' then
    do;
    i + 1;
    ids{i}=id;
    %put ids{i};
  end;
 
  
  if id=ids{j} then
    do;
    j+1;
    status='OTHER';
    output;
    end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 02 Sep 2020 11:27:42 GMT</pubDate>
    <dc:creator>t34</dc:creator>
    <dc:date>2020-09-02T11:27:42Z</dc:date>
    <item>
      <title>Store values temporary arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680923#M205906</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I want to store values of ID in array when status is PROBATION. After that, I want to look up in the table the field ID that are in array to create a new record of them With the status changed (I want to maintain the original and the new record)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input agreement  $10.      id         status$15.    ;
datalines;
0002255                         1       PROBATION   
0002255                         2       NORMAL      
0007777                         3       NORMAL    
0007777                         4       NORMAL    
0007777                         5       NORMAL      
0008888                         6       PROBATION   
0008888                         7       NORMAL      
0008888                         8       NORMAL      
run;

data want (drop=i);
  set have;
 /* by agreement;*/
  output;
  j=0;
  i=0;
  retain j;
  retain i;
  array ids [1000] _temporary_;
  array var {1} id ;
 

  if status='PROBATION' then
    do;
    i + 1;
    ids{i}=id;
    %put ids{i};
  end;
 
  
  if id=ids{j} then
    do;
    j+1;
    status='OTHER';
    output;
    end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 Sep 2020 11:27:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680923#M205906</guid>
      <dc:creator>t34</dc:creator>
      <dc:date>2020-09-02T11:27:42Z</dc:date>
    </item>
    <item>
      <title>Re: Store values temporary arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680924#M205907</link>
      <description>&lt;P&gt;&lt;SPAN&gt;What does your desired output look like from this example data?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2020 11:31:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680924#M205907</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2020-09-02T11:31:11Z</dc:date>
    </item>
    <item>
      <title>Re: Store values temporary arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680928#M205908</link>
      <description>&lt;P&gt;If your result is as simple as I think, you can do this. No need for array logic&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
   set have;
   output;
   if status = "PROBATION" then do;
      status='OTHER';
      output;
   end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 Sep 2020 11:38:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680928#M205908</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2020-09-02T11:38:14Z</dc:date>
    </item>
    <item>
      <title>Re: Store values temporary arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680933#M205910</link>
      <description>&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Have&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;agreement&lt;/TD&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;status&lt;/TD&gt;&lt;TD&gt;day&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;PROBATION&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;23&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0008888&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;PROBATION&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0008888&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0008888&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Sorry for the bad explanation, the idea is to copy information of previous row when the next is PROBATION&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Want&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;agreement&lt;/TD&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;status&lt;/TD&gt;&lt;TD&gt;day&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;OTHER&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;PROBATION&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;23&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;OTHER&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0008888&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;PROBATION&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0008888&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0008888&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0008888&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 02 Sep 2020 11:51:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680933#M205910</guid>
      <dc:creator>t34</dc:creator>
      <dc:date>2020-09-02T11:51:33Z</dc:date>
    </item>
    <item>
      <title>Re: Store values temporary arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680941#M205915</link>
      <description>&lt;P&gt;Ok. See if this gives you what you want.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also, ID should equal 6 in obs #8, right&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
 input agreement $ id status $10. day;
datalines;
0002255 0 NORMAL    3  
0002255 1 PROBATION 4  
0002255 2 NORMAL    14 
0007777 3 NORMAL    23 
0007777 4 NORMAL    8  
0007777 5 NORMAL    9  
0008888 6 PROBATION 11 
0008888 7 NORMAL    12 
0008888 8 NORMAL    5  
;

data want(drop=d dd);
   set have;

   if status ne "PROBATION" then d = day;

   else do;
      status = "OTHER";
      dd = day;
      day = d;
      output;
      status = "PROBATION";
      day = dd;
   end;

   output;
   retain d;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;agreement id  status     day 
0002255   0   NORMAL     3 
0002255   1   OTHER      3 
0002255   1   PROBATION  4 
0002255   2   NORMAL     14 
0007777   3   NORMAL     23 
0007777   4   NORMAL     8 
0007777   5   NORMAL     9 
0008888   6   OTHER      9 
0008888   6   PROBATION  11 
0008888   7   NORMAL     12 
0008888   8   NORMAL     5 
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2020 12:09:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680941#M205915</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2020-09-02T12:09:40Z</dc:date>
    </item>
    <item>
      <title>Re: Store values temporary arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680942#M205916</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/344580"&gt;@t34&lt;/a&gt;&amp;nbsp; If I understand you correctly, you need LOOK AHEAD-&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input (agreement	id	status) (:$10.)	day;
cards;
0002255	0	NORMAL	3
0002255	1	PROBATION	4
0002255	2	NORMAL	14
0007777	3	NORMAL	23
0007777	4	NORMAL	8
0007777	5	NORMAL	9
0008888	6	PROBATION	11
0008888	7	NORMAL	12
0008888	8	NORMAL	5
;

data want;
 merge have have(keep=status firstobs=2 rename=(status=_status));
 output;
 if _status='PROBATION' then do;
  status='OTHER';
  output;
 end;
 drop _status;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 02 Sep 2020 12:09:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680942#M205916</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-09-02T12:09:01Z</dc:date>
    </item>
    <item>
      <title>Re: Store values temporary arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680947#M205920</link>
      <description>&lt;P&gt;Thank so much. It is almost. I´ve got a mistake in the table. In the eight row should be 5.&lt;/P&gt;&lt;P&gt;The extra row was a mistake of copy-paste.&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;agreement&lt;/TD&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;status&lt;/TD&gt;&lt;TD&gt;day&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;OTHER&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;PROBATION&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0002255&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;23&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0007777&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;OTHER&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0008888&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;PROBATION&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0008888&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0008888&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;NORMAL&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 02 Sep 2020 13:16:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680947#M205920</guid>
      <dc:creator>t34</dc:creator>
      <dc:date>2020-09-02T13:16:54Z</dc:date>
    </item>
    <item>
      <title>Re: Store values temporary arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680949#M205921</link>
      <description>&lt;P&gt;Then why is ID equal to 1 in the second obs?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2020 12:41:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680949#M205921</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2020-09-02T12:41:43Z</dc:date>
    </item>
    <item>
      <title>Re: Store values temporary arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680950#M205922</link>
      <description>&lt;P&gt;Also, why does id 8 get an additional obs?&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2020 12:43:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Store-values-temporary-arrays/m-p/680950#M205922</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2020-09-02T12:43:24Z</dc:date>
    </item>
  </channel>
</rss>

