<?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: Selecting observations based on closest records of days in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Selecting-observations-based-on-closest-records-of-days/m-p/280999#M56896</link>
    <description>&lt;P&gt;It would be better if you could post some more data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input subject studyday visit trt_changeday ;
datalines;
1 23 1 30
1 36 2 30
1 40 3 30
1 55 4 30
1 78 5 30
2 23 1 35
2 25 2 35
2 44 3 35
3 12 1 24
3 18 2 24
3 30 3 24
3 45 4 24
3 66 5 24
4 2 1 47
4 56 2 47
4 89 3 47
;
run;
 
data have;
set have;
by subject;
gap=trt_changeday-studyday;

retain found ;
if first.subject then found=.;

if not found and abs(gap) le 30 and gap lt 0 and lag(gap) gt 0 then do;
 found=1;flag=1;
end;

if not found and abs(gap) gt 30 then do;
 found=1;flag=1;
end;

drop found;
run;



&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 29 Jun 2016 08:07:00 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2016-06-29T08:07:00Z</dc:date>
    <item>
      <title>Selecting observations based on closest records of days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Selecting-observations-based-on-closest-records-of-days/m-p/280990#M56892</link>
      <description>&lt;P&gt;&lt;FONT size="1"&gt;Hi, I have data as follows&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;&lt;FONT color="#000080" face="Courier New"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; have;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;&lt;FONT color="#0000ff" face="Courier New"&gt;&lt;FONT color="#0000ff" face="Courier New"&gt;&lt;FONT color="#0000ff" face="Courier New"&gt;input&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt; subject studyday visit trt_changeday ;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;&lt;FONT color="#0000ff" face="Courier New"&gt;&lt;FONT color="#0000ff" face="Courier New"&gt;&lt;FONT color="#0000ff" face="Courier New"&gt;datalines&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;1 23 1 30&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;1 36 2 30&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;1 40 3 30&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;1 55 4 30&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;1 78 5 30&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;2 23 1 35&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;2 25 2 35&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;2 44 3 35&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;3 12 1 24&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;3 18 2 24&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;3 30 3 24&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;3 45 4 24&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;3 66 5 24&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;4 2 1 47&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;4 56 2 47&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;4 89 3 47&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;&lt;FONT color="#000080" face="Courier New"&gt;&lt;FONT color="#000080" face="Courier New"&gt;&lt;FONT color="#000080" face="Courier New"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;data have;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;set have;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;gap=trt_changeday-studyday;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New"&gt;run;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to flag records based on following conditions&lt;/P&gt;
&lt;P&gt;1. if studyday is +30 or -30 days&amp;nbsp; of trt_changeday then flag the record &lt;STRONG&gt;closest&lt;/STRONG&gt; to trt_changeday&lt;BR /&gt;else ;&lt;/P&gt;
&lt;P&gt;2. if studyday is out of range of +/ -30 days of trt_changeday then flag the record of the visit &lt;STRONG&gt;erlier&lt;/STRONG&gt; to trt_changeday (Subject 4)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I need final output as below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="418"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;subject&lt;/TD&gt;
&lt;TD width="64"&gt;studyday&lt;/TD&gt;
&lt;TD width="64"&gt;visit&lt;/TD&gt;
&lt;TD width="98"&gt;trt changeday&lt;/TD&gt;
&lt;TD width="64"&gt;gap&lt;/TD&gt;
&lt;TD width="64"&gt;&lt;STRONG&gt;flag&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;23&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;36&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;-6&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;40&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;-10&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;55&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;-25&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;78&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;-48&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;23&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;35&lt;/TD&gt;
&lt;TD&gt;12&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;25&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;35&lt;/TD&gt;
&lt;TD&gt;10&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;44&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;35&lt;/TD&gt;
&lt;TD&gt;-9&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;18&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;TD&gt;-6&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;45&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;TD&gt;-21&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;66&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;TD&gt;-42&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;47&lt;/TD&gt;
&lt;TD&gt;45&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;56&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;47&lt;/TD&gt;
&lt;TD&gt;-9&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;89&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;47&lt;/TD&gt;
&lt;TD&gt;-42&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;Thanks for the help.&lt;/P&gt;</description>
      <pubDate>Wed, 29 Jun 2016 07:08:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Selecting-observations-based-on-closest-records-of-days/m-p/280990#M56892</guid>
      <dc:creator>chuck33</dc:creator>
      <dc:date>2016-06-29T07:08:04Z</dc:date>
    </item>
    <item>
      <title>Re: Selecting observations based on closest records of days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Selecting-observations-based-on-closest-records-of-days/m-p/280999#M56896</link>
      <description>&lt;P&gt;It would be better if you could post some more data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input subject studyday visit trt_changeday ;
datalines;
1 23 1 30
1 36 2 30
1 40 3 30
1 55 4 30
1 78 5 30
2 23 1 35
2 25 2 35
2 44 3 35
3 12 1 24
3 18 2 24
3 30 3 24
3 45 4 24
3 66 5 24
4 2 1 47
4 56 2 47
4 89 3 47
;
run;
 
data have;
set have;
by subject;
gap=trt_changeday-studyday;

retain found ;
if first.subject then found=.;

if not found and abs(gap) le 30 and gap lt 0 and lag(gap) gt 0 then do;
 found=1;flag=1;
end;

if not found and abs(gap) gt 30 then do;
 found=1;flag=1;
end;

drop found;
run;



&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 29 Jun 2016 08:07:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Selecting-observations-based-on-closest-records-of-days/m-p/280999#M56896</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-06-29T08:07:00Z</dc:date>
    </item>
    <item>
      <title>Re: Selecting observations based on closest records of days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Selecting-observations-based-on-closest-records-of-days/m-p/282021#M57264</link>
      <description>Thanks Ksharp.&lt;BR /&gt;I just tweaked this a little and got what I wanted,&lt;BR /&gt;Your insight helped.</description>
      <pubDate>Mon, 04 Jul 2016 15:47:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Selecting-observations-based-on-closest-records-of-days/m-p/282021#M57264</guid>
      <dc:creator>chuck33</dc:creator>
      <dc:date>2016-07-04T15:47:13Z</dc:date>
    </item>
  </channel>
</rss>

