<?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: find the last exposure date before adverse event in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332356#M74796</link>
    <description>&lt;P&gt;That would work too, it's largely a matter of preference on small datasets. &amp;nbsp;On bigger datasets there may be some performance implications for choosing one way or another, at least when passing through to database, I'm not as experienced at pure PROC SQL performance tuning as I am at pass-through stuff.&lt;/P&gt;</description>
    <pubDate>Mon, 13 Feb 2017 21:21:09 GMT</pubDate>
    <dc:creator>Sven111</dc:creator>
    <dc:date>2017-02-13T21:21:09Z</dc:date>
    <item>
      <title>find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332319#M74781</link>
      <description>&lt;P&gt;I have each subject's series of exposure date and also series of adverse event date, and want to compare and find the last exposure date prior to each adverse event. For example, exposure dates are &amp;nbsp;&amp;nbsp;in the first two columns, adverse events dates are in the third and forth columns, and I want to get the last column&amp;nbsp;for each adverse event. Can anyone give me some hints? Thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The first two columns are in one dataset (EX), and the 3rd and 4th columns are in the second dataset (AE); the 5th column is the column I want to add to have. I put them together for convenience.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="624"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;ID&lt;/TD&gt;
&lt;TD width="124"&gt;EX_date&lt;/TD&gt;
&lt;TD width="64"&gt;ID&amp;nbsp;&lt;/TD&gt;
&lt;TD width="120"&gt;AE_date&lt;/TD&gt;
&lt;TD width="252"&gt;Last EX_date before AE_date&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;8-Mar-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;9-Mar-16&lt;/TD&gt;
&lt;TD&gt;8-Mar-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;22-Mar-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;9-Mar-16&lt;/TD&gt;
&lt;TD&gt;8-Mar-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;12-Apr-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;9-Mar-16&lt;/TD&gt;
&lt;TD&gt;8-Mar-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;26-Apr-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4-Mar-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;30-Aug-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;20-Mar-16&lt;/TD&gt;
&lt;TD&gt;8-Mar-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;16-Sep-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;9-Mar-16&lt;/TD&gt;
&lt;TD&gt;8-Mar-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;30-Sep-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3-Apr-16&lt;/TD&gt;
&lt;TD&gt;22-Mar-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;14-Oct-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;26-Apr-16&lt;/TD&gt;
&lt;TD&gt;12-Apr-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;9-Nov-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;26-Apr-16&lt;/TD&gt;
&lt;TD&gt;12-Apr-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;13-Jul-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;20-May-16&lt;/TD&gt;
&lt;TD&gt;26-Apr-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;27-Jul-16&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;16-May-16&lt;/TD&gt;
&lt;TD&gt;26-Apr-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;14-Sep-16&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;12-Sep-16&lt;/TD&gt;
&lt;TD&gt;30-Aug-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;12-Oct-16&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;12-Sep-16&lt;/TD&gt;
&lt;TD&gt;30-Aug-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;26-Oct-16&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;28-Oct-16&lt;/TD&gt;
&lt;TD&gt;14-Oct-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;9-Nov-16&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;28-Oct-16&lt;/TD&gt;
&lt;TD&gt;14-Oct-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;19-Oct-16&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;27-Jul-16&lt;/TD&gt;
&lt;TD&gt;13-Jul-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;2-Nov-16&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;14-Sep-16&lt;/TD&gt;
&lt;TD&gt;27-Jul-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;16-Nov-16&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;12-Aug-16&lt;/TD&gt;
&lt;TD&gt;27-Jul-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;30-Nov-16&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;10-Aug-16&lt;/TD&gt;
&lt;TD&gt;27-Jul-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;30-Jun-16&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;14-Sep-16&lt;/TD&gt;
&lt;TD&gt;27-Jul-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;14-Jul-16&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;19-Oct-16&lt;/TD&gt;
&lt;TD&gt;12-Oct-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;20-Aug-16&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;5-Dec-16&lt;/TD&gt;
&lt;TD&gt;30-Nov-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;13-Sep-16&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;15-Dec-16&lt;/TD&gt;
&lt;TD&gt;30-Nov-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;27-Sep-16&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;15-Dec-16&lt;/TD&gt;
&lt;TD&gt;30-Nov-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;11-Oct-16&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;25-Nov-16&lt;/TD&gt;
&lt;TD&gt;30-Nov-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;25-Oct-16&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;13-Dec-16&lt;/TD&gt;
&lt;TD&gt;30-Nov-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;8-Nov-16&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;27-Dec-16&lt;/TD&gt;
&lt;TD&gt;30-Nov-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;22-Nov-16&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;19-Jul-16&lt;/TD&gt;
&lt;TD&gt;14-Jul-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;6-Dec-16&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;16-Aug-16&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;27-Dec-16&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;30-Aug-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;10-Jan-17&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;30-Aug-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1-Dec-16&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;13-Sep-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;10-Nov-16&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;28-Sep-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;28-Nov-16&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;28-Sep-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;13-Dec-16&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;28-Sep-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;28-Dec-16&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;28-Sep-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&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;5&lt;/TD&gt;
&lt;TD&gt;12-Oct-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&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;5&lt;/TD&gt;
&lt;TD&gt;16-Oct-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&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;5&lt;/TD&gt;
&lt;TD&gt;14-Oct-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&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;5&lt;/TD&gt;
&lt;TD&gt;31-Oct-16&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&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;6&lt;/TD&gt;
&lt;TD&gt;10-Jan-17&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&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;6&lt;/TD&gt;
&lt;TD&gt;10-Jan-17&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Mon, 13 Feb 2017 21:02:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332319#M74781</guid>
      <dc:creator>fengyuwuzu</dc:creator>
      <dc:date>2017-02-13T21:02:30Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332332#M74787</link>
      <description>&lt;P&gt;Is your data sorted by id?&amp;nbsp; Your sample is not.&lt;/P&gt;</description>
      <pubDate>Mon, 13 Feb 2017 20:46:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332332#M74787</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-02-13T20:46:08Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332345#M74790</link>
      <description>they are in different datasets. I just want to give some sample data, and put them together.</description>
      <pubDate>Mon, 13 Feb 2017 21:03:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332345#M74790</guid>
      <dc:creator>fengyuwuzu</dc:creator>
      <dc:date>2017-02-13T21:03:45Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332347#M74792</link>
      <description>&lt;P&gt;Assuming there are two separate tables, one for the Exposure date and one for the Adverse effects, you could create the fifth column like this:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC SQL;
    SELECT  tbl_A.ID
           ,tbl_A.AE_Date
           ,(SELECT MAX(tbl_B.EX_Date)
             FROM   tbl_Exposure    AS tbl_B
             WHERE  tbl_A.ID         = tbl_B.ID
               AND  tbl_A.AE_Date   &amp;gt;= tbl_B.Exp_Date)
    FROM    tbl_AdvEff              AS tbl_A;
;QUIT;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 13 Feb 2017 21:07:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332347#M74792</guid>
      <dc:creator>Sven111</dc:creator>
      <dc:date>2017-02-13T21:07:37Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332352#M74794</link>
      <description>&lt;P&gt;Thank you. This is a good clue.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am thinking about left join&lt;/P&gt;</description>
      <pubDate>Mon, 13 Feb 2017 21:12:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332352#M74794</guid>
      <dc:creator>fengyuwuzu</dc:creator>
      <dc:date>2017-02-13T21:12:30Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332354#M74795</link>
      <description>&lt;P&gt;Assuming you have dataset EXDATES, sorted by ID and ex_date,&amp;nbsp; and dataset AEDATES, sorted by ID and ae_date, then you can use the SET ... BY combination of statements to interleave the two datasets.&amp;nbsp; You can retain last_exdate every time an ex_dates observation is read, and you can use the subsetting IF to only keep records read from AEDATES:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data exdates;
  input ID EX_date :date9.;
  format ex_date yymmddn8.;
datalines;
1 	8mar2016 	
1 	22mar2016 	
1 	12Apr2016 
1 	26Apr2016 
2 	30Aug2016 	
2 	16Sep2016 	
2 	30Sep2016 	
2 	14Oct2016 	
2 	9Nov2016 	
3 	13Jul2016 	
3 	27Jul2016 	
3 	14Sep2016 	
3 	12Oct2016 	
3 	26Oct2016 	
3 	9Nov2016 	
4 	19Oct2016 	
4 	2Nov2016 	
4 	16Nov2016 	
4 	30Nov2016 	
5 	30Jun2016 	
5 	14Jul2016 	
5 	20Aug2016 	
5 	13Sep2016 	
5 	27Sep2016 	
5 	11Oct2016 	
5 	25Oct2016 	
5 	8Nov2016 	
5 	22Nov2016 	
5 	6Dec2016 	
5 	27Dec2016 	
6 	10Jan17 	
6 	1Dec2016 	
6 	10Nov2016 	
6 	28Nov2016 	
6 	13Dec2016 	
6 	28Dec2016 	
run;
proc sort ; by id ex_date;run;

data aedates;
  input ID AE_date :date9.	;
  format ae_date yymmddn8.;
datalines;
    1       9mar2016
    1       9mar2016
    1       9mar2016
    1       4mar2016
    1       20mar2016
    1       9mar2016
    1       3Apr2016
    1       26Apr2016
    1       26Apr2016
    1       20May2016
    1       16May2016
    2       12Sep2016
    2       12Sep2016
    2       28Oct2016
    2       28Oct2016
    3       27Jul2016
    3       14Sep2016
    3       12Aug2016
    3       10Aug2016
    3       14Sep2016
    3       19Oct2016
    4       5Dec2016
    4       15Dec2016
    4       15Dec2016
    4       25Nov2016
    4       13Dec2016
    4       27Dec2016
    5       19Jul2016
    5       16Aug2016
    5       30Aug2016
    5       30Aug2016
    5       13Sep2016
    5       28Sep2016
    5       28Sep2016
    5       28Sep2016
    5       28Sep2016
    5       12Oct2016
    5       16Oct2016
    5       14Oct2016
    5       31Oct2016
    6       10Jan2017
    6       10Jan2017
run;
proc sort; by id ae_date;run;

data want;
  set exdates (in=inex rename=(ex_date=ae_date)) 
      aedates (in=inae);
  by id ae_date;

  retain last_exdate;
  if first.id then last_exdate=.;
  if inex then last_exdate=ae_date;
  if inae;
  format last_exdate yymmddn8.;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 13 Feb 2017 21:19:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332354#M74795</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-02-13T21:19:18Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332356#M74796</link>
      <description>&lt;P&gt;That would work too, it's largely a matter of preference on small datasets. &amp;nbsp;On bigger datasets there may be some performance implications for choosing one way or another, at least when passing through to database, I'm not as experienced at pure PROC SQL performance tuning as I am at pass-through stuff.&lt;/P&gt;</description>
      <pubDate>Mon, 13 Feb 2017 21:21:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332356#M74796</guid>
      <dc:creator>Sven111</dc:creator>
      <dc:date>2017-02-13T21:21:09Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332358#M74797</link>
      <description>&lt;P&gt;Thank you,&amp;nbsp;&lt;SPAN class="login-bold"&gt;&lt;A id="link_28" class="lia-link-navigation lia-page-link lia-user-name-link" href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461" target="_self"&gt;mkeintz&lt;/A&gt;. Your method should work too. Thank you very much for your time and input.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Feb 2017 21:22:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332358#M74797</guid>
      <dc:creator>fengyuwuzu</dc:creator>
      <dc:date>2017-02-13T21:22:57Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332362#M74800</link>
      <description>&lt;P&gt;I always like seeing a DATA step approach for problems like this since SQL is more of my strong suit and always my first take on a solution. Seeing the same problem solved using both helps me see the problem from a different perspective and learn a bit more.&lt;/P&gt;</description>
      <pubDate>Mon, 13 Feb 2017 21:25:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332362#M74800</guid>
      <dc:creator>Sven111</dc:creator>
      <dc:date>2017-02-13T21:25:51Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332365#M74803</link>
      <description>&lt;P&gt;As long as the datasets are not large, I think you'll be happy with the performance of sql.&amp;nbsp; But it is probably not as scalable as the data step approach, especially if your datasets are already sorted.&lt;/P&gt;</description>
      <pubDate>Mon, 13 Feb 2017 21:30:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332365#M74803</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-02-13T21:30:29Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332408#M74816</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/56496"&gt;@Sven111&lt;/a&gt;: Just in case you hadn't noticed, neither of the proposed solutions give you exactly what you asked for. To correct for that, given the SQL solution, change the line:&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;AND  tbl_A&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;AE_Date   &lt;SPAN class="token operator"&gt;&amp;gt;=&lt;/SPAN&gt; tbl_B&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;Ex&lt;/SPAN&gt;p_Date&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;to&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;AND  tbl_A&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;AE_Date   &lt;SPAN class="token operator"&gt;&amp;gt;&lt;/SPAN&gt; tbl_B&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;Ex&lt;/SPAN&gt;p_Date&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;HTH,&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Feb 2017 23:15:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332408#M74816</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-02-13T23:15:23Z</dc:date>
    </item>
    <item>
      <title>Re: find the last exposure date before adverse event</title>
      <link>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332443#M74827</link>
      <description>Thank you very much, Art. Yes, you are correct, and I wanted to use "&amp;gt;". I did change it when applied the solution.</description>
      <pubDate>Tue, 14 Feb 2017 01:00:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/find-the-last-exposure-date-before-adverse-event/m-p/332443#M74827</guid>
      <dc:creator>fengyuwuzu</dc:creator>
      <dc:date>2017-02-14T01:00:02Z</dc:date>
    </item>
  </channel>
</rss>

