<?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: Handle missing when outputing data for every 365 days in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85443#M24447</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks everyone. You guys are so helpful and the solutions so clever. Tried all and worked. With Linlin's proc sort statement, I just need to add Days in and in a descending order to get 1096 outputted when both 1096 and 1094 have the same nearest distance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sort; by c diff descending days;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 17 Apr 2012 18:13:00 GMT</pubDate>
    <dc:creator>Solph</dc:creator>
    <dc:date>2012-04-17T18:13:00Z</dc:date>
    <item>
      <title>Handle missing when outputing data for every 365 days</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85439#M24443</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Hi &lt;/P&gt;&lt;P&gt;I have some daily data but some days may have missing data. I'd like to output only records for every 365 days, and if the data is missing for that day, I'd like to choose the nearest day point to output - either before or after. Is there an easy and efficient way to do it? Thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data data; input days;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;1&lt;/P&gt;&lt;P&gt;364&lt;/P&gt;&lt;P&gt;365&lt;/P&gt;&lt;P&gt;729&lt;/P&gt;&lt;P&gt;732&lt;/P&gt;&lt;P&gt;1094&lt;/P&gt;&lt;P&gt;1096&lt;/P&gt;&lt;P&gt;1099&lt;/P&gt;&lt;P&gt;3285&lt;/P&gt;&lt;P&gt;3630&lt;/P&gt;&lt;P&gt;3675&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Desire output:&lt;/P&gt;&lt;P&gt;365&lt;/P&gt;&lt;P&gt;729&lt;/P&gt;&lt;P&gt;1096&amp;nbsp; (either 1094 or 1096 is fine, preferably the latter day though)&lt;/P&gt;&lt;P&gt;3285&lt;/P&gt;&lt;P&gt;3630&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Apr 2012 19:43:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85439#M24443</guid>
      <dc:creator>Solph</dc:creator>
      <dc:date>2012-04-16T19:43:12Z</dc:date>
    </item>
    <item>
      <title>Re: Handle missing when outputing data for every 365 days</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85440#M24444</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This code is ugly:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data foo; &lt;/P&gt;&lt;P&gt; input days;&lt;/P&gt;&lt;P&gt; cards;&lt;/P&gt;&lt;P&gt;1&lt;/P&gt;&lt;P&gt;364&lt;/P&gt;&lt;P&gt;365&lt;/P&gt;&lt;P&gt;729&lt;/P&gt;&lt;P&gt;732&lt;/P&gt;&lt;P&gt;1094&lt;/P&gt;&lt;P&gt;1096&lt;/P&gt;&lt;P&gt;1099&lt;/P&gt;&lt;P&gt;3285&lt;/P&gt;&lt;P&gt;3630&lt;/P&gt;&lt;P&gt;3675&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data bar(where=(c&amp;gt;0));&lt;/P&gt;&lt;P&gt; set foo;&lt;/P&gt;&lt;P&gt; c=round(days/(365));&lt;/P&gt;&lt;P&gt; _c=lag(c);&lt;/P&gt;&lt;P&gt; if c=_c then _j=0; else _j=1;&lt;/P&gt;&lt;P&gt; m=abs((365*_j)-(mod(days,365)));&lt;/P&gt;&lt;P&gt; drop _:;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=bar; by c m descending days; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt; set bar;&lt;/P&gt;&lt;P&gt; by c m descending days;&lt;/P&gt;&lt;P&gt; if first.c then output;&lt;/P&gt;&lt;P&gt; keep days;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;365&lt;/P&gt;&lt;P&gt;729&lt;/P&gt;&lt;P&gt;1096&lt;/P&gt;&lt;P&gt;3285&lt;/P&gt;&lt;P&gt;3630&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Apr 2012 21:47:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85440#M24444</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2012-04-16T21:47:10Z</dc:date>
    </item>
    <item>
      <title>Re: Handle missing when outputing data for every 365 days</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85441#M24445</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;another approach:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data foo;&lt;/P&gt;&lt;P&gt;input days;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1&lt;/P&gt;&lt;P&gt;364&lt;/P&gt;&lt;P&gt;365&lt;/P&gt;&lt;P&gt;729&lt;/P&gt;&lt;P&gt;732&lt;/P&gt;&lt;P&gt;1094&lt;/P&gt;&lt;P&gt;1096&lt;/P&gt;&lt;P&gt;1099&lt;/P&gt;&lt;P&gt;3285&lt;/P&gt;&lt;P&gt;3630&lt;/P&gt;&lt;P&gt;3675&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data bar;&lt;/P&gt;&lt;P&gt;set foo(where=(days&amp;gt;300));&lt;/P&gt;&lt;P&gt;c=round(days/(365));&lt;/P&gt;&lt;P&gt;diff=abs(days-c*365);&lt;/P&gt;&lt;P&gt;proc sort;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by c diff;&lt;/P&gt;&lt;P&gt;data want(keep=days);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set bar;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by c diff;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if first.c;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Apr 2012 23:12:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85441#M24445</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-04-16T23:12:47Z</dc:date>
    </item>
    <item>
      <title>Re: Handle missing when outputing data for every 365 days</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85442#M24446</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Assuming you don't have a group missing data for a whole year.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data foo;
input days;
cards;
1
364
365
729
732
1094
1096
1099
3285
3630
3675
;
run;
proc sql noprint;
 select max(days) into : max from foo;
quit;
data x(drop=n);
 do n=1 to int(&amp;amp;max/365);
&amp;nbsp; _days=n*365;output;
 end;
run;
proc sql;
 create table want as
&amp;nbsp; select&amp;nbsp; _days label='365th date',days
&amp;nbsp;&amp;nbsp; from x,foo
&amp;nbsp;&amp;nbsp;&amp;nbsp; group by _days
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; having abs(_days-days)=min(abs(_days-days));
quit;
proc sort data=want out=want1 ;by _days descending days;run;
proc sort data=want1 out=want2 nodupkey;by _days ;run;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Apr 2012 04:04:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85442#M24446</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-04-17T04:04:30Z</dc:date>
    </item>
    <item>
      <title>Re: Handle missing when outputing data for every 365 days</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85443#M24447</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks everyone. You guys are so helpful and the solutions so clever. Tried all and worked. With Linlin's proc sort statement, I just need to add Days in and in a descending order to get 1096 outputted when both 1096 and 1094 have the same nearest distance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sort; by c diff descending days;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Apr 2012 18:13:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Handle-missing-when-outputing-data-for-every-365-days/m-p/85443#M24447</guid>
      <dc:creator>Solph</dc:creator>
      <dc:date>2012-04-17T18:13:00Z</dc:date>
    </item>
  </channel>
</rss>

