<?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 measure days between two different observations? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282315#M57370</link>
    <description>&lt;P&gt;my install, 9.2 i wasn't getting results with the anydtdte but I didn't try with longer than 25.&lt;/P&gt;</description>
    <pubDate>Tue, 05 Jul 2016 22:51:05 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2016-07-05T22:51:05Z</dc:date>
    <item>
      <title>How do I measure days between two different observations?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282294#M57351</link>
      <description>&lt;P&gt;Please forgive my ignorance, but I need to measure days between two dates on different observations of the same individual. Perhaps an example of my data would be helpful:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID# &amp;nbsp; &amp;nbsp; VAR1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; VAR2 &amp;nbsp; &amp;nbsp; VAR1dummy &amp;nbsp; &amp;nbsp; DATE&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;30April2015&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;9May2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31May2015&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;30June2015&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30April2015&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31May2015&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp;28June2015 &amp;nbsp; &amp;nbsp; &amp;nbsp;. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30June2015&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp;3April2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; . &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;30April2015&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31May2015&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30June2015&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the example above, I am attempting to measure the days between when Var1 has a date and when Var2 has a value of 'X' for each individual ID# (I created a dummy variable for when VAR1 has a date).&amp;nbsp;For example, ID#1 has 9 days between when VAR1 appears and when VAR2 has an 'X', ID#2 has 59 and ID#3 has 88&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;Thanks&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jul 2016 20:55:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282294#M57351</guid>
      <dc:creator>ccarlyle26</dc:creator>
      <dc:date>2016-07-05T20:55:31Z</dc:date>
    </item>
    <item>
      <title>Re: How do I measure days between two different observations?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282297#M57354</link>
      <description>&lt;P&gt;Please post an example of your expected output.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jul 2016 20:57:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282297#M57354</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-07-05T20:57:42Z</dc:date>
    </item>
    <item>
      <title>Re: How do I measure days between two different observations?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282307#M57364</link>
      <description>&lt;P&gt;Your date format is a bit awkward to turn into SAS date values that would be the first step.&lt;/P&gt;
&lt;P&gt;The following reads your example data, creates SAS date values and then does the difference calculation.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    informat id best4. var1text $25. var2 $1. var1dummy best1. datetext $25.;
    input ID  var1text  VAR2  VAR1dummy  datetext;
    length monname $ 9;
    array mon (12) $ 9 _temporary_ ('January','February','March','April','May','June','July','August','September','October','November','December');
    if not missing(var1text) then do;
       day= input(scan(var1text,1,,'A'),best2.);
       monname= scan(var1text,1,,'D');
       month = whichc(monname,of mon(*));
       year= input(scan(var1text,2,,'A'),best4.);
       Var1=mdy(month,day,year);
    end;
    if not missing(datetext) then do;
       day= input(scan(datetext,1,,'A'),best2.);
       monname= scan(datetext,1,,'D');
       month = whichc(monname,of mon(*));
       year= input(scan(datetext,2,,'A'),best4.);
       date=mdy(month,day,year);
    end;
    format var1 date date9.;
    drop var1text datetext day monname month year;

datalines;
1  .  X  0  30April2015
1  9May2015  .  1  31May2015
1  .  .  0  30June2015
2  .  X  0  30April2015
2  .  .  0  31May2015
2  28June2015  .  1  30June2015
3  3April2015  .  1  30April2015
3  .  .  0  31May2015
3  .  X  0  30June2015
;
run;

proc sql;
   create table want as
   select a.*, case 
                  when not missing(a.var1) then abs(b.date-a.var1)
                  else .
               end as datedifference
   from have as a left join (select id,date from have where var2='X') as b
      on a.id =b.id
   ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Assumptions have been made about the possible values of month in your dates for other months that do not appear in your data. Modify the list in the array statement. Note that the order of the elements in the array is critical.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jul 2016 21:59:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282307#M57364</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-07-05T21:59:36Z</dc:date>
    </item>
    <item>
      <title>Re: How do I measure days between two different observations?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282313#M57368</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13884"&gt;@ballardw﻿&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data T;
  D=input('30April2015',anydtdte32.); 
  put D= date9.; 
run;

D=30APR2015
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 05 Jul 2016 22:47:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282313#M57368</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2016-07-05T22:47:33Z</dc:date>
    </item>
    <item>
      <title>Re: How do I measure days between two different observations?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282315#M57370</link>
      <description>&lt;P&gt;my install, 9.2 i wasn't getting results with the anydtdte but I didn't try with longer than 25.&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jul 2016 22:51:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282315#M57370</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-07-05T22:51:05Z</dc:date>
    </item>
    <item>
      <title>Re: How do I measure days between two different observations?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282317#M57371</link>
      <description>&lt;P&gt;I always use a length 32 for my informats when the data is not well bound and controlled, it avoids problems. &lt;BR /&gt;Related: I don't know why sas decided to use a lower default length, even for the best. informat. That's a dumb decision imho.&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jul 2016 23:07:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282317#M57371</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2016-07-05T23:07:20Z</dc:date>
    </item>
    <item>
      <title>Re: How do I measure days between two different observations?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282318#M57372</link>
      <description>&lt;P&gt;Here is a technique that uses PROC SUMMARY to reduce the data.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;proc summary data = in nway missing;
  class id var2;&lt;BR /&gt;  var var1 date;&lt;BR /&gt;  output out = reduced( drop = _type_ _freq_ ) min=;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;data deltaDays;&lt;BR /&gt;  set reduced( where = ( var2 = 'X' ) );&lt;BR /&gt;  deltaDays = date - var1;&lt;BR /&gt;run;&lt;/PRE&gt;</description>
      <pubDate>Tue, 05 Jul 2016 23:10:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282318#M57372</guid>
      <dc:creator>sh0e</dc:creator>
      <dc:date>2016-07-05T23:10:02Z</dc:date>
    </item>
    <item>
      <title>Re: How do I measure days between two different observations?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282327#M57374</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    informat id best4. var1text date9. var2 $1. var1dummy best1. datetext date9.;
    input ID  var1text  VAR2  VAR1dummy  datetext;
format var1text  datetext date9.;
datalines;
1  .  X  0  30Apr2015
1  9May2015  .  1  31May2015
1  .  .  0  30Jun2015
2  .  X  0  30Apr2015
2  .  .  0  31May2015
2  28Jun2015  .  1  30Jun2015
3  3Apr2015  .  1  30Apr2015
3  .  .  0  31May2015
3  .  X  0  30Jun2015
;
run;
data want;
 do until(last.id);
  set have;
  by id;
  if not missing(var1text) then x=var1text;
  if not missing(VAR2) then y=datetext;
 end;
 dif=abs(x-y);
keep id dif;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 06 Jul 2016 00:52:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-measure-days-between-two-different-observations/m-p/282327#M57374</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-07-06T00:52:22Z</dc:date>
    </item>
  </channel>
</rss>

