<?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 calculate days from lagging dates in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/calculate-days-from-lagging-dates/m-p/900504#M83064</link>
    <description>&lt;P&gt;Hi, I would like to calculate days difference from lagging dates if subject_ID appears more than 1 times. e.g. ID 1 appears twice, so I would like to calculate number of days from 2nd infection date (i.e. 15-Apr-15) to 1st treatment date&amp;nbsp;(i.e. 31-Mar-15) =15. If there is only one ID, days=.&lt;/P&gt;
&lt;TABLE width="390"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="61"&gt;subject&lt;/TD&gt;
&lt;TD width="68"&gt;sub_id&lt;/TD&gt;
&lt;TD width="99"&gt;infection_date&lt;/TD&gt;
&lt;TD width="98"&gt;treatmet_date&lt;/TD&gt;
&lt;TD width="64"&gt;days&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;1jan2015&lt;/TD&gt;
&lt;TD&gt;31mar2015&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;15apr2015&lt;/TD&gt;
&lt;TD&gt;30jun2015&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;1Sep2015&lt;/TD&gt;
&lt;TD&gt;28feb2015&lt;/TD&gt;
&lt;TD&gt;63&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;33&lt;/TD&gt;
&lt;TD&gt;1jan2015&lt;/TD&gt;
&lt;TD&gt;28feb2015&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;34&lt;/TD&gt;
&lt;TD&gt;15mar2015&lt;/TD&gt;
&lt;TD&gt;31mar2015&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;35&lt;/TD&gt;
&lt;TD&gt;1may2015&lt;/TD&gt;
&lt;TD&gt;30jun2015&lt;/TD&gt;
&lt;TD&gt;31&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;44&lt;/TD&gt;
&lt;TD&gt;1mar2015&lt;/TD&gt;
&lt;TD&gt;31mar2015&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;1mar2015&lt;/TD&gt;
&lt;TD&gt;31mar2015&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;56&lt;/TD&gt;
&lt;TD&gt;1oct2015&lt;/TD&gt;
&lt;TD&gt;30jun2015&lt;/TD&gt;
&lt;TD&gt;184&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;SAS dataset:&lt;/P&gt;
&lt;P&gt;data have;&lt;BR /&gt;input subject sub_id (infection_date treatmet_date) (: $20.);&lt;BR /&gt;cards; &lt;BR /&gt;1 11 1jan2015 31mar2015 &lt;BR /&gt;1 12 15apr2015 30jun2015 &lt;BR /&gt;2 22 1Sep2015 28feb2015&lt;BR /&gt;3 33 1jan2015 28feb2015&lt;BR /&gt;3 34 15mar2015 31mar2015&lt;BR /&gt;3 35 1may2015 30jun2015&lt;BR /&gt;4 44 1mar2015 31mar2015&lt;BR /&gt;5 55 1mar2015 31mar2015&lt;BR /&gt;5 56 1oct2015 30jun2015&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in advance&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>Sun, 29 Oct 2023 17:31:20 GMT</pubDate>
    <dc:creator>bijayadhikar</dc:creator>
    <dc:date>2023-10-29T17:31:20Z</dc:date>
    <item>
      <title>calculate days from lagging dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/calculate-days-from-lagging-dates/m-p/900504#M83064</link>
      <description>&lt;P&gt;Hi, I would like to calculate days difference from lagging dates if subject_ID appears more than 1 times. e.g. ID 1 appears twice, so I would like to calculate number of days from 2nd infection date (i.e. 15-Apr-15) to 1st treatment date&amp;nbsp;(i.e. 31-Mar-15) =15. If there is only one ID, days=.&lt;/P&gt;
&lt;TABLE width="390"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="61"&gt;subject&lt;/TD&gt;
&lt;TD width="68"&gt;sub_id&lt;/TD&gt;
&lt;TD width="99"&gt;infection_date&lt;/TD&gt;
&lt;TD width="98"&gt;treatmet_date&lt;/TD&gt;
&lt;TD width="64"&gt;days&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;1jan2015&lt;/TD&gt;
&lt;TD&gt;31mar2015&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;15apr2015&lt;/TD&gt;
&lt;TD&gt;30jun2015&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;1Sep2015&lt;/TD&gt;
&lt;TD&gt;28feb2015&lt;/TD&gt;
&lt;TD&gt;63&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;33&lt;/TD&gt;
&lt;TD&gt;1jan2015&lt;/TD&gt;
&lt;TD&gt;28feb2015&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;34&lt;/TD&gt;
&lt;TD&gt;15mar2015&lt;/TD&gt;
&lt;TD&gt;31mar2015&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;35&lt;/TD&gt;
&lt;TD&gt;1may2015&lt;/TD&gt;
&lt;TD&gt;30jun2015&lt;/TD&gt;
&lt;TD&gt;31&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;44&lt;/TD&gt;
&lt;TD&gt;1mar2015&lt;/TD&gt;
&lt;TD&gt;31mar2015&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;1mar2015&lt;/TD&gt;
&lt;TD&gt;31mar2015&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;56&lt;/TD&gt;
&lt;TD&gt;1oct2015&lt;/TD&gt;
&lt;TD&gt;30jun2015&lt;/TD&gt;
&lt;TD&gt;184&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;SAS dataset:&lt;/P&gt;
&lt;P&gt;data have;&lt;BR /&gt;input subject sub_id (infection_date treatmet_date) (: $20.);&lt;BR /&gt;cards; &lt;BR /&gt;1 11 1jan2015 31mar2015 &lt;BR /&gt;1 12 15apr2015 30jun2015 &lt;BR /&gt;2 22 1Sep2015 28feb2015&lt;BR /&gt;3 33 1jan2015 28feb2015&lt;BR /&gt;3 34 15mar2015 31mar2015&lt;BR /&gt;3 35 1may2015 30jun2015&lt;BR /&gt;4 44 1mar2015 31mar2015&lt;BR /&gt;5 55 1mar2015 31mar2015&lt;BR /&gt;5 56 1oct2015 30jun2015&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in advance&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>Sun, 29 Oct 2023 17:31:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/calculate-days-from-lagging-dates/m-p/900504#M83064</guid>
      <dc:creator>bijayadhikar</dc:creator>
      <dc:date>2023-10-29T17:31:20Z</dc:date>
    </item>
    <item>
      <title>Re: calculate days from lagging dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/calculate-days-from-lagging-dates/m-p/900508#M83065</link>
      <description>&lt;P&gt;Thank you for providing a DATA HAVE step, but your code reads in the date variables as character values.&amp;nbsp; It needs to be read in as a DATE variable,&amp;nbsp; i.e. a numeric value that represents calendar dates.&amp;nbsp; So you need to use a proper INFORMAT to read infection_date and treatmet_date.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once you have done that, you should be able to use code like to below to selectively generate days between current infection date and lagged treatment date:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=_:);
  set have;
  by subject;
  _lagtd=lag(treatmet_date);
  if first.subject=0 then days=infection_date - _lagtd;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This code assumes your data are sorted by subject, and chronologically within subject.&lt;/P&gt;</description>
      <pubDate>Sun, 29 Oct 2023 21:26:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/calculate-days-from-lagging-dates/m-p/900508#M83065</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2023-10-29T21:26:28Z</dc:date>
    </item>
  </channel>
</rss>

