<?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: Creating new variables using data step in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846839#M334780</link>
    <description>data Details;&lt;BR /&gt;input Date :date. IND $ STACK NETS START END ;&lt;BR /&gt;format date date9.;&lt;BR /&gt;datalines;&lt;BR /&gt;01May-2020 Y 10 4 9 13&lt;BR /&gt;02May-2020 Y 5 6&lt;BR /&gt;03May-2020 Y 4 7&lt;BR /&gt;04May-2020 Y 3 9&lt;BR /&gt;05May-2020 Y 2 5&lt;BR /&gt;;</description>
    <pubDate>Tue, 29 Nov 2022 15:22:32 GMT</pubDate>
    <dc:creator>arjunaj91</dc:creator>
    <dc:date>2022-11-29T15:22:32Z</dc:date>
    <item>
      <title>Creating new variables using data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846826#M334768</link>
      <description>&lt;P&gt;I Have a dataset named Details with the following columns:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Ind&lt;/TD&gt;&lt;TD&gt;Stacks&lt;/TD&gt;&lt;TD&gt;Nets&lt;/TD&gt;&lt;TD&gt;Start&lt;/TD&gt;&lt;TD&gt;End&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;01st May 2020&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2nd May 2020&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;6&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;3rd May 2020&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;7&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;4th May 2020&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;9&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;5th May 2020&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;5&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;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create the values of Start and End in the following table using previous day values. Start will be Previous day end and End will be start + nets and need to iterate this for all days using proc data step. The table needs to look like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Ind&lt;/TD&gt;&lt;TD&gt;Stacks&lt;/TD&gt;&lt;TD&gt;Nets&lt;/TD&gt;&lt;TD&gt;Start&lt;/TD&gt;&lt;TD&gt;End&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;01st May 2020&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2nd May 2020&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3rd May 2020&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;26&lt;/TD&gt;&lt;TD&gt;33&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4th May 2020&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;33&lt;/TD&gt;&lt;TD&gt;42&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5th May 2020&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;42&lt;/TD&gt;&lt;TD&gt;47&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried the following code with no success and needs help in determining what I did wrong:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data FinalTable;&lt;BR /&gt;set Details ;&lt;BR /&gt;by Date ;&lt;BR /&gt;retain IND STACK NETS START END&lt;BR /&gt;;&lt;BR /&gt;if first. date then do;&lt;BR /&gt;IND = IND;&lt;BR /&gt;STACK = STACKS;&lt;BR /&gt;NETS = NETS;&lt;BR /&gt;START = START;&lt;BR /&gt;END = END;&lt;BR /&gt;end;&lt;BR /&gt;if last. date then do;&lt;BR /&gt;END =START + NETS;&lt;BR /&gt;output;&lt;BR /&gt;START=END;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;BR /&gt;proc print; run;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Nov 2022 14:47:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846826#M334768</guid>
      <dc:creator>arjunaj91</dc:creator>
      <dc:date>2022-11-29T14:47:39Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new variables using data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846827#M334769</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* UNTESTED CODE */
data want;
    set have;
    prev_end=lag(end);
    if missing(start) then start=prev_end;
    if missing(end) then end=start+nets;
    drop prev_end;
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;If you want tested code, please provide the data as SAS data step code (&lt;A href="https://blogs.sas.com/content/sastraining/2016/03/11/jedi-sas-tricks-data-to-data-step-macro/" target="_self"&gt;instructions&lt;/A&gt;), and not as screen captures or Excel.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Nov 2022 14:52:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846827#M334769</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-11-29T14:52:18Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new variables using data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846836#M334777</link>
      <description>The logic works for just one date and shows empty for the next 3 days</description>
      <pubDate>Tue, 29 Nov 2022 15:11:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846836#M334777</guid>
      <dc:creator>arjunaj91</dc:creator>
      <dc:date>2022-11-29T15:11:50Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new variables using data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846837#M334778</link>
      <description>&lt;P&gt;Please provide data as working SAS data step code, as I explained.&lt;/P&gt;</description>
      <pubDate>Tue, 29 Nov 2022 15:13:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846837#M334778</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-11-29T15:13:56Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new variables using data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846839#M334780</link>
      <description>data Details;&lt;BR /&gt;input Date :date. IND $ STACK NETS START END ;&lt;BR /&gt;format date date9.;&lt;BR /&gt;datalines;&lt;BR /&gt;01May-2020 Y 10 4 9 13&lt;BR /&gt;02May-2020 Y 5 6&lt;BR /&gt;03May-2020 Y 4 7&lt;BR /&gt;04May-2020 Y 3 9&lt;BR /&gt;05May-2020 Y 2 5&lt;BR /&gt;;</description>
      <pubDate>Tue, 29 Nov 2022 15:22:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846839#M334780</guid>
      <dc:creator>arjunaj91</dc:creator>
      <dc:date>2022-11-29T15:22:32Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new variables using data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846840#M334781</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/358059"&gt;@arjunaj91&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;data Details;&lt;BR /&gt;input Date :date. IND $ STACK NETS START END ;&lt;BR /&gt;format date date9.;&lt;BR /&gt;datalines;&lt;BR /&gt;01May-2020 Y 10 4 9 13&lt;BR /&gt;02May-2020 Y 5 6&lt;BR /&gt;03May-2020 Y 4 7&lt;BR /&gt;04May-2020 Y 3 9&lt;BR /&gt;05May-2020 Y 2 5&lt;BR /&gt;;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;That data step does not appear to work properly.&lt;/P&gt;
&lt;PRE&gt;2449  data Details;
2450  input Date :date. IND $ STACK NETS START END ;
2451  format date date9.;
2452  datalines;

NOTE: Invalid data for START in line 2455 1-10.
NOTE: Invalid data for END in line 2455 12-12.
RULE:       ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
2455        03May-2020 Y 4 7
Date=02MAY2020 IND=Y STACK=5 NETS=6 START=. END=. _ERROR_=1 _N_=2
NOTE: Invalid data for START in line 2457 1-10.
NOTE: Invalid data for END in line 2457 12-12.
2457        05May-2020 Y 2 5
Date=04MAY2020 IND=Y STACK=3 NETS=9 START=. END=. _ERROR_=1 _N_=3
NOTE: SAS went to a new line when INPUT statement reached past the end of a line.
NOTE: The data set WORK.DETAILS has 3 observations and 6 variables.
&lt;/PRE&gt;
&lt;P&gt;The last four lines only have four values on them.&lt;/P&gt;
&lt;P&gt;Did you mean to use&amp;nbsp;a data step like this instead?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Details;
  input Date :date. IND $ STACK NETS START END ;
  format date date9.;
datalines;
01May-2020 Y 10 4 9 13
02May-2020 Y  5 6 .  .
03May-2020 Y  4 7 .  .
04May-2020 Y  3 9 .  .
05May-2020 Y  2 5 .  .
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Nov 2022 15:42:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846840#M334781</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2022-11-29T15:42:09Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new variables using data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846841#M334782</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
    set details;
    retain newend;
    if _n_=1 then do;
        newstart=start;
        newend=end;
    end;
    else if _n_&amp;gt;1 then do;
        newstart=newend; 
        newend=newstart+nets; 
    end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Assumes you have fixed the code as indicated by&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159"&gt;@Tom&lt;/a&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Nov 2022 15:45:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846841#M334782</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-11-29T15:45:49Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new variables using data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846842#M334783</link>
      <description>&lt;P&gt;It does no good to RETAIN variables that are sourced from an input dataset. First it is redundant as such variables are already not reset to missing at the start of each data step iteration (which is what RETAIN actually means).&amp;nbsp; But mainly because the values are overwritten by the values read from the input data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You need to define NEW variables to retain the calculated new values of START and END.&lt;/P&gt;</description>
      <pubDate>Tue, 29 Nov 2022 15:45:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846842#M334783</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2022-11-29T15:45:56Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new variables using data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846848#M334786</link>
      <description>Thanks a lot. Works like a charm</description>
      <pubDate>Tue, 29 Nov 2022 16:09:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846848#M334786</guid>
      <dc:creator>arjunaj91</dc:creator>
      <dc:date>2022-11-29T16:09:11Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new variables using data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846850#M334787</link>
      <description>Thanks, Tom!</description>
      <pubDate>Tue, 29 Nov 2022 16:12:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-variables-using-data-step/m-p/846850#M334787</guid>
      <dc:creator>arjunaj91</dc:creator>
      <dc:date>2022-11-29T16:12:54Z</dc:date>
    </item>
  </channel>
</rss>

