<?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: Select closest observation in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301263#M63713</link>
    <description>Thanks RW9</description>
    <pubDate>Wed, 28 Sep 2016 13:35:42 GMT</pubDate>
    <dc:creator>ari</dc:creator>
    <dc:date>2016-09-28T13:35:42Z</dc:date>
    <item>
      <title>Select closest observation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301198#M63704</link>
      <description>&lt;P&gt;I have dataset with multiple observations per subject.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Have:&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;t&lt;/TD&gt;&lt;TD&gt;v&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;2.95&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;5.11&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;2.33&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;21&lt;/TD&gt;&lt;TD&gt;4.3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;28&lt;/TD&gt;&lt;TD&gt;2.28&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create a dataset to keep only one record per subject where the &amp;nbsp;variable 't' closest to value 24.&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;want:&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;t&lt;/TD&gt;&lt;TD&gt;v&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;2.33&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 to do this in sas?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Sep 2016 10:10:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301198#M63704</guid>
      <dc:creator>ari</dc:creator>
      <dc:date>2016-09-28T10:10:40Z</dc:date>
    </item>
    <item>
      <title>Re: Select closest observation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301204#M63705</link>
      <description>&lt;P&gt;Simplest way I can think of is to create an offset var, then sort by offset and take n=1:&lt;/P&gt;
&lt;PRE&gt;data want;
  set have;
  offset=ifn(t&amp;lt;24,24-t,t-24);
run;
proc sort data=want;
  by offset;
run;
data want;
  set want (obs=1);
run;&lt;/PRE&gt;
&lt;P&gt;Not tested as not typing in test data - post as a datastep next time.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Sep 2016 10:33:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301204#M63705</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-09-28T10:33:57Z</dc:date>
    </item>
    <item>
      <title>Re: Select closest observation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301210#M63706</link>
      <description>&lt;P&gt;or this way:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID t v;
datalines;
1 30 2.95
1 22 5.11
1 23 2.33
1 21 4.3
1 28 2.28
;
run;

proc sql;
  create table want as
    select id, t, v 
    from have
    group by id
    having min(abs(24-t))=abs(24-t)
    ;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 28 Sep 2016 10:57:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301210#M63706</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2016-09-28T10:57:00Z</dc:date>
    </item>
    <item>
      <title>Re: Select closest observation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301213#M63707</link>
      <description>&lt;P&gt;Since you indicate there are multiple IDs:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data int;
set have;
offset = abs(t-24);
run;

proc sort data=int;
by id offset;
run;

data want;
set int;
by id;
if first.id;
drop offset;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;For larger datasets, this might be more performant than doing it with SQL.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Sep 2016 11:22:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301213#M63707</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-09-28T11:22:03Z</dc:date>
    </item>
    <item>
      <title>Re: Select closest observation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301263#M63713</link>
      <description>Thanks RW9</description>
      <pubDate>Wed, 28 Sep 2016 13:35:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301263#M63713</guid>
      <dc:creator>ari</dc:creator>
      <dc:date>2016-09-28T13:35:42Z</dc:date>
    </item>
    <item>
      <title>Re: Select closest observation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301264#M63714</link>
      <description>Thanks Patrick</description>
      <pubDate>Wed, 28 Sep 2016 13:35:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301264#M63714</guid>
      <dc:creator>ari</dc:creator>
      <dc:date>2016-09-28T13:35:59Z</dc:date>
    </item>
    <item>
      <title>Re: Select closest observation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301265#M63715</link>
      <description>Thanks Kurt</description>
      <pubDate>Wed, 28 Sep 2016 13:36:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Select-closest-observation/m-p/301265#M63715</guid>
      <dc:creator>ari</dc:creator>
      <dc:date>2016-09-28T13:36:18Z</dc:date>
    </item>
  </channel>
</rss>

