<?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: How do I create a cumulative time variable in my dataset? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592532#M169909</link>
    <description>&lt;P&gt;This then?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data HAVE;
  input TIME time9.; 
  format TIME time9.;
datalines;
21:00:00
9:00:00
13:00:00
17:00:00
;
run; 

data WANT;
  set HAVE;
  if TIME&amp;lt;lag(TIME) then DAYS+1;
  CUM=DAYS*24+TIME/3600;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="r header" scope="col"&gt;TIME&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;DAYS&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;CUM&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;21:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;21&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;9:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;33&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;13:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;37&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;17:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;41&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 30 Sep 2019 01:18:23 GMT</pubDate>
    <dc:creator>ChrisNZ</dc:creator>
    <dc:date>2019-09-30T01:18:23Z</dc:date>
    <item>
      <title>How do I create a cumulative time variable in my dataset?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592527#M169906</link>
      <description>&lt;P&gt;I have a data set where I have a time variable:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input time time9.; 
datalines;
21:00:00
9:00:00
13:00:00
17:00:00
;
run; 

data have2;
set have;
format time time9.;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;What I would like is to find a way to create a cumulative time variable based on the hours elapsed from the previous time:&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;Time&lt;/TD&gt;&lt;TD&gt;CumTime&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;21:00:00&lt;/TD&gt;&lt;TD&gt;21&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;09:00:00&lt;/TD&gt;&lt;TD&gt;33&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13:00:00&lt;/TD&gt;&lt;TD&gt;37&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;17:00:00&lt;/TD&gt;&lt;TD&gt;41&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help would be much appreciated!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Emily&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Sep 2019 00:53:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592527#M169906</guid>
      <dc:creator>emilysully</dc:creator>
      <dc:date>2019-09-30T00:53:42Z</dc:date>
    </item>
    <item>
      <title>Re: How do I create a cumulative time variable in my dataset?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592529#M169907</link>
      <description>&lt;P&gt;Like this?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data HAVE;
  input TIME time9.; 
  format TIME time9.;
datalines;
21:00:00
9:00:00
13:00:00
17:00:00
;
run; 

data WANT;
  set HAVE;
  CUM+TIME/3600;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="r header" scope="col"&gt;TIME&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;CUM&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;21:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;21&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;9:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;13:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;43&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;17:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;60&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 30 Sep 2019 01:10:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592529#M169907</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-09-30T01:10:38Z</dc:date>
    </item>
    <item>
      <title>Re: How do I create a cumulative time variable in my dataset?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592530#M169908</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;Thank you so much for your response. That is the gist of what I am looking&lt;BR /&gt;for and what I have generally come up with in my attempts. However, the&lt;BR /&gt;cumulative time does not match up with the time variable. For example, the&lt;BR /&gt;09:00:00 would correspond to hour 33 as 12 hours would have passed from&lt;BR /&gt;21:00:00 to 09:00:00.&lt;BR /&gt;&lt;BR /&gt;Emily&lt;BR /&gt;</description>
      <pubDate>Mon, 30 Sep 2019 01:16:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592530#M169908</guid>
      <dc:creator>emilysully</dc:creator>
      <dc:date>2019-09-30T01:16:32Z</dc:date>
    </item>
    <item>
      <title>Re: How do I create a cumulative time variable in my dataset?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592532#M169909</link>
      <description>&lt;P&gt;This then?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data HAVE;
  input TIME time9.; 
  format TIME time9.;
datalines;
21:00:00
9:00:00
13:00:00
17:00:00
;
run; 

data WANT;
  set HAVE;
  if TIME&amp;lt;lag(TIME) then DAYS+1;
  CUM=DAYS*24+TIME/3600;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="r header" scope="col"&gt;TIME&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;DAYS&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;CUM&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;21:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;21&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;9:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;33&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;13:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;37&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;17:00:00&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;41&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Sep 2019 01:18:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592532#M169909</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-09-30T01:18:23Z</dc:date>
    </item>
    <item>
      <title>Re: How do I create a cumulative time variable in my dataset?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592533#M169910</link>
      <description>&lt;P&gt;Can we assume that there is never more than 24 hours between two times? How would we know that the interval between the 21 and 9 is really 12 hours and not 36 (or more) hours?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Adding: every computer system I have ever dealt with provides a date and time, instead of the example here which provides only the time. If you have both the date and time, the problem is simple.&lt;/P&gt;</description>
      <pubDate>Mon, 30 Sep 2019 01:31:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592533#M169910</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-09-30T01:31:42Z</dc:date>
    </item>
    <item>
      <title>Re: How do I create a cumulative time variable in my dataset?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592537#M169911</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;Thank you for your response. Yes, you can assume that.&lt;BR /&gt;&lt;BR /&gt;Emily&lt;BR /&gt;</description>
      <pubDate>Mon, 30 Sep 2019 02:40:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592537#M169911</guid>
      <dc:creator>emilysully</dc:creator>
      <dc:date>2019-09-30T02:40:32Z</dc:date>
    </item>
    <item>
      <title>Re: How do I create a cumulative time variable in my dataset?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592723#M169971</link>
      <description>Do you have dates to go alone with those times? If so this becomes a trivial calculation but otherwise you're making a lot of assumptions that likely don't hold all the time.</description>
      <pubDate>Mon, 30 Sep 2019 15:38:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592723#M169971</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-09-30T15:38:32Z</dc:date>
    </item>
    <item>
      <title>Re: How do I create a cumulative time variable in my dataset?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592732#M169974</link>
      <description>Hi Reeza,&lt;BR /&gt;&lt;BR /&gt;I do have a set of dates that go along with it:&lt;BR /&gt;&lt;BR /&gt;data HAVE;&lt;BR /&gt;input date MMDDYY10. TIME time9.;&lt;BR /&gt;format date MMDDYY10. TIME time9.;&lt;BR /&gt;datalines;&lt;BR /&gt;09/29/2019 21:00:00&lt;BR /&gt;09/30/2019 9:00:00&lt;BR /&gt;09/30/2019 13:00:00&lt;BR /&gt;09/30/2019 17:00:00&lt;BR /&gt;;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;Thank you for your assistance.&lt;BR /&gt;&lt;BR /&gt;Emily&lt;BR /&gt;</description>
      <pubDate>Mon, 30 Sep 2019 15:58:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592732#M169974</guid>
      <dc:creator>emilysully</dc:creator>
      <dc:date>2019-09-30T15:58:32Z</dc:date>
    </item>
    <item>
      <title>Re: How do I create a cumulative time variable in my dataset?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592737#M169978</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;

retain running_duration;

prev_date = lag(date);
prev_time = lag(time);

duration = dhms(date, 0, 0, time) - dhms(prev_date, 0, 0, time);

running_duration =sum( duration, running_duration);

run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;LAG() gets previous value&lt;/P&gt;
&lt;P&gt;DHMS() converts your value to a datetime. Your duration is now in seconds so you'll need to convert that to a format you like.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/292907"&gt;@emilysully&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;Hi Reeza,&lt;BR /&gt;&lt;BR /&gt;I do have a set of dates that go along with it:&lt;BR /&gt;&lt;BR /&gt;data HAVE;&lt;BR /&gt;input date MMDDYY10. TIME time9.;&lt;BR /&gt;format date MMDDYY10. TIME time9.;&lt;BR /&gt;datalines;&lt;BR /&gt;09/29/2019 21:00:00&lt;BR /&gt;09/30/2019 9:00:00&lt;BR /&gt;09/30/2019 13:00:00&lt;BR /&gt;09/30/2019 17:00:00&lt;BR /&gt;;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;Thank you for your assistance.&lt;BR /&gt;&lt;BR /&gt;Emily&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Sep 2019 16:01:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592737#M169978</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-09-30T16:01:40Z</dc:date>
    </item>
    <item>
      <title>Re: How do I create a cumulative time variable in my dataset?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592787#M170002</link>
      <description>&lt;P&gt;So make a datetime value and use DIF() function to see how it changes from observation to observation.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
  set have ;
  datetime=dhms(date,0,0,time);
  format datetime datetime20.;
  if _N_=1 then cum_time=time;
  cum_time + dif(datetime);
  format cum_time hhmm.;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs          date         TIME                datetime    cum_time

 1     09/29/2019     21:00:00      29SEP2019:21:00:00     21:00
 2     09/30/2019      9:00:00      30SEP2019:09:00:00     33:00
 3     09/30/2019     13:00:00      30SEP2019:13:00:00     37:00
 4     09/30/2019     17:00:00      30SEP2019:17:00:00     41:00&lt;/PRE&gt;
&lt;P&gt;or just remember the start datetime and subtract to find the elapsed time.&amp;nbsp; You can convert a time value to hours by dividing by the number of seconds in one hour.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
  set have ;
  if _N_=1 then start=dhms(date,0,0,0);
  retain start;
  cum_time = dhms(date,0,0,time)-start;
  cum_hours = cum_time / '1:00't ;
  format cum_time hhmm.;
  format start datetime20.;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;                                                                       cum_
Obs          date         TIME                   start    cum_time    hours

 1     09/29/2019     21:00:00      29SEP2019:00:00:00     21:00        21
 2     09/30/2019      9:00:00      29SEP2019:00:00:00     33:00        33
 3     09/30/2019     13:00:00      29SEP2019:00:00:00     37:00        37
 4     09/30/2019     17:00:00      29SEP2019:00:00:00     41:00        41&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Sep 2019 18:51:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-create-a-cumulative-time-variable-in-my-dataset/m-p/592787#M170002</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-09-30T18:51:59Z</dc:date>
    </item>
  </channel>
</rss>

