<?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: A Retain Statement or can be solved by Proc SQL in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433746#M281883</link>
    <description>&lt;P&gt;How do you want to treat incomplete dates? Delete them? Assign a day (e.g. 1 15 or end of month) if missing day? What about for missing year?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 03 Feb 2018 02:25:09 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2018-02-03T02:25:09Z</dc:date>
    <item>
      <title>A Retain Statement or can be solved by Proc SQL</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433743#M281882</link>
      <description>&lt;P&gt;&lt;BR /&gt;I have the following dataset with following variables:&lt;BR /&gt;ID (Character) test (character) date (character) result (numeric)&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;ID&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; test&amp;nbsp; &amp;nbsp; &amp;nbsp; date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result&lt;BR /&gt;101&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; run&amp;nbsp; &amp;nbsp; &amp;nbsp;15JUL1978&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&lt;BR /&gt;101&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; run&amp;nbsp; &amp;nbsp; &amp;nbsp;18JUL1976&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &lt;BR /&gt;101&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; run&amp;nbsp; &amp;nbsp; &amp;nbsp;17JUL1978&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2&lt;BR /&gt;101&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; run&amp;nbsp; &amp;nbsp; &amp;nbsp;20JUL1976&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4&lt;BR /&gt;101&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case&amp;nbsp; &amp;nbsp;15OCT2014&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5&lt;BR /&gt;101&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case&amp;nbsp; &amp;nbsp;17NOV2016&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4&lt;BR /&gt;101&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case&amp;nbsp; &amp;nbsp;15DEC2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&lt;BR /&gt;102&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rub&amp;nbsp; &amp;nbsp; &amp;nbsp; 28MAR2017&amp;nbsp; &amp;nbsp; &amp;nbsp; 7&lt;BR /&gt;102&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rub&amp;nbsp; &amp;nbsp; &amp;nbsp; 29MAR&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8&lt;BR /&gt;102&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rub&amp;nbsp; &amp;nbsp; &amp;nbsp; APR2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;need retian statement used or proc sql to create a new variable "MAXRESULT" to &lt;BR /&gt;retain the maxmimum vaue from the presvois itration and compare with the present one&lt;BR /&gt;and keep the maximum one and&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;NEED A RESULT Datset LIKE AS BELOW. Also need to pay attention to the incomplete date &lt;BR /&gt;and missing result.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID&amp;nbsp; &amp;nbsp; test&amp;nbsp; &amp;nbsp;date&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result&amp;nbsp; &amp;nbsp; MAXRESULT&lt;BR /&gt;101&amp;nbsp; run&amp;nbsp; &amp;nbsp;15JUL1978&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; &amp;nbsp; &amp;nbsp;1&lt;BR /&gt;101&amp;nbsp; run&amp;nbsp; &amp;nbsp; 17JUL1978&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2 &lt;BR /&gt;101&amp;nbsp; run&amp;nbsp; &amp;nbsp; 18JUL1976&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; &amp;nbsp; &amp;nbsp;2&lt;BR /&gt;101&amp;nbsp; run&amp;nbsp; &amp;nbsp; 20JUL1976&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4&lt;BR /&gt;101&amp;nbsp; case&amp;nbsp; 15OCT2014&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 5&lt;BR /&gt;101&amp;nbsp; case&amp;nbsp; 17NOV2016&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5&lt;BR /&gt;101&amp;nbsp; case&amp;nbsp; 15DEC2017&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;5&lt;BR /&gt;102&amp;nbsp; rub&amp;nbsp; &amp;nbsp; 28MAR2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7&lt;BR /&gt;102&amp;nbsp; rub&amp;nbsp; &amp;nbsp; 29MAR&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8 (Incomplete Date)&lt;BR /&gt;102&amp;nbsp; rub&amp;nbsp; &amp;nbsp; APR2017&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8 (Incomplete Date)&lt;/P&gt;
&lt;P&gt;Thank you so much from the bottom of my heart.&lt;/P&gt;</description>
      <pubDate>Sat, 03 Feb 2018 02:04:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433743#M281882</guid>
      <dc:creator>need_sas_help</dc:creator>
      <dc:date>2018-02-03T02:04:35Z</dc:date>
    </item>
    <item>
      <title>Re: A Retain Statement or can be solved by Proc SQL</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433746#M281883</link>
      <description>&lt;P&gt;How do you want to treat incomplete dates? Delete them? Assign a day (e.g. 1 15 or end of month) if missing day? What about for missing year?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 03 Feb 2018 02:25:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433746#M281883</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2018-02-03T02:25:09Z</dc:date>
    </item>
    <item>
      <title>Re: A Retain Statement or can be solved by Proc SQL</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433749#M281884</link>
      <description>&lt;P&gt;Retain statement works for me.&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
	set have;
	retain MAXRESULT;
	if _n_ = 1 then MAXRESULT=result;
	if result &amp;gt; MAXRESULT then MAXRESULT = result;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 03 Feb 2018 02:48:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433749#M281884</guid>
      <dc:creator>MINX</dc:creator>
      <dc:date>2018-02-03T02:48:19Z</dc:date>
    </item>
    <item>
      <title>Re: A Retain Statement or can be solved by Proc SQL</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433751#M281885</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input  (ID            test      date) (:$10.)                  result;
datalines;
101          run     15JUL1978         1
101          run     18JUL1976         1 
101          run     17JUL1978         2
101          run     20JUL1976         4
101          case   15OCT2014       5
101          case   17NOV2016       4
101          case   15DEC2017        .
102          rub      28MAR2017      7
102          rub      29MAR              8
102          rub      APR2017           5
;

data want;
set have;  
by id;
retain 	max_result;
if first.id then call missing(max_result);
max_result=max(max_result,result);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 03 Feb 2018 02:52:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433751#M281885</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-02-03T02:52:10Z</dc:date>
    </item>
    <item>
      <title>Re: A Retain Statement or can be solved by Proc SQL</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433761#M281886</link>
      <description>&lt;PRE&gt;Sorry, Actually my typing had some errors  and the new problem should as  below (there is some changes), can you please check it:

I have the following dataset with following variables:
ID (Character) test (character) date (character) result (numeric)


ID       test   date               result
101      run    15JUL1978           1
101      run    15JUL1978           2
101      run    15JUL1978           1
101      run    18JUL1976           1 
101      run    18JUL1976           1 
101      run    18JUL1976           1 
101      case   15OCT2014         5
101      case   15OCT2014         5
101      case   15DEC2017          .
102      rub     28MAR2017         7
102      rub     28MAR2017         6          
102      rub     29MAR                8
102      rub     APR2017             5

need retian statement used or proc sql to create a new variable "MAXRESULT" to 
retain the maxmimum value (by ID test  date(  meaning per time point) from the presvois itration and compare with the present one
and keep the maximum one and
NEED A RESULT Datset LIKE AS BELOW. Also need to pay attention to the incomplete date 
and missing result. 


ID       test   date               result    MAXRESULT
101      run    15JUL1978           1          1
101      run    15JUL1978           2          2
101      run    15JUL1978           1          2 
101      run    18JUL1976           1          1
101      run    18JUL1976           1          1 
101      run    18JUL1976           1          1
101      case   15OCT2014          5          5 
101      case   15OCT2014          5          5
101      case   15DEC2017           .          .
102      rub     28MAR2017         7           7 
102      rub     28MAR2017         6           7
102      rub     29MAR                8           8
102      rub     APR2017             5           5      


Thank you so much from the bottom of my heart.&lt;/PRE&gt;</description>
      <pubDate>Sat, 03 Feb 2018 06:11:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433761#M281886</guid>
      <dc:creator>need_sas_help</dc:creator>
      <dc:date>2018-02-03T06:11:40Z</dc:date>
    </item>
    <item>
      <title>Re: A Retain Statement or can be solved by Proc SQL</title>
      <link>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433763#M281887</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input  (ID            test      date) (:$10.)                  result;
datalines;
101      run    15JUL1978           1
101      run    15JUL1978           2
101      run    15JUL1978           1
101      run    18JUL1976           1 
101      run    18JUL1976           1 
101      run    18JUL1976           1 
101      case   15OCT2014         5
101      case   15OCT2014         5
101      case   15DEC2017          .
102      rub     28MAR2017         7
102      rub     28MAR2017         6          
102      rub     29MAR                8
102      rub     APR2017             5
;

data want;
set have;  
by id date notsorted;
retain 	max_result;
if first.date then call missing(max_result);
max_result=ifn(missing(result), ., max(max_result,result));
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 03 Feb 2018 06:29:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/A-Retain-Statement-or-can-be-solved-by-Proc-SQL/m-p/433763#M281887</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-02-03T06:29:27Z</dc:date>
    </item>
  </channel>
</rss>

