<?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 Struggling with Data Step retain function in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Struggling-with-Data-Step-retain-function/m-p/579994#M164706</link>
    <description>&lt;P&gt;Data set is below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to retain the Max YEAR with the corresponding FIRST_FOUND detail. I've tried a retain statement but it seems its not working. Not sure if I am able to create a MAX(YEAR) within in a data step or if i will have to create that in a proc sql prior to performing my data step. Any assistance would be appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Primary_ID&lt;/TD&gt;&lt;TD&gt;Secondary_ID&lt;/TD&gt;&lt;TD&gt;YEAR&lt;/TD&gt;&lt;TD&gt;CONDITION&lt;/TD&gt;&lt;TD&gt;STATUS&lt;/TD&gt;&lt;TD&gt;FIRST_FOUND&lt;/TD&gt;&lt;TD&gt;count&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2014&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;NEW&lt;/TD&gt;&lt;TD&gt;IT&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2015&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;DROPPED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2016&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;DROPPED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2017&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;DROPPED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2018&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;DROPPED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2019&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;DROPPED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is how i would like my data to look&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Primary_ID&lt;/TD&gt;&lt;TD&gt;Secondary_ID&lt;/TD&gt;&lt;TD&gt;DOS_YEAR&lt;/TD&gt;&lt;TD&gt;CONDITION&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;STATUS&lt;/TD&gt;&lt;TD&gt;FIRST_FOUND&lt;/TD&gt;&lt;TD&gt;count&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2018&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;NEW&lt;/TD&gt;&lt;TD&gt;IT&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Code Below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data source_detail_1 (keep=Primary_ID Secondary_ID YEAR CONDITION STATUS FIRST_FOUND COUNT YEAR1 );&lt;BR /&gt;set source_detail (where=(PRIMARY_ID='1ABCDEFG2345')) ;&lt;BR /&gt;retain first_found;&lt;BR /&gt;YEAR1= MAX(YEAR);&lt;BR /&gt;run;&lt;/P&gt;</description>
    <pubDate>Thu, 08 Aug 2019 20:46:02 GMT</pubDate>
    <dc:creator>bknitch</dc:creator>
    <dc:date>2019-08-08T20:46:02Z</dc:date>
    <item>
      <title>Struggling with Data Step retain function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Struggling-with-Data-Step-retain-function/m-p/579994#M164706</link>
      <description>&lt;P&gt;Data set is below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to retain the Max YEAR with the corresponding FIRST_FOUND detail. I've tried a retain statement but it seems its not working. Not sure if I am able to create a MAX(YEAR) within in a data step or if i will have to create that in a proc sql prior to performing my data step. Any assistance would be appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Primary_ID&lt;/TD&gt;&lt;TD&gt;Secondary_ID&lt;/TD&gt;&lt;TD&gt;YEAR&lt;/TD&gt;&lt;TD&gt;CONDITION&lt;/TD&gt;&lt;TD&gt;STATUS&lt;/TD&gt;&lt;TD&gt;FIRST_FOUND&lt;/TD&gt;&lt;TD&gt;count&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2014&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;NEW&lt;/TD&gt;&lt;TD&gt;IT&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2015&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;DROPPED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2016&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;DROPPED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2017&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;DROPPED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2018&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;DROPPED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2019&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;DROPPED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is how i would like my data to look&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Primary_ID&lt;/TD&gt;&lt;TD&gt;Secondary_ID&lt;/TD&gt;&lt;TD&gt;DOS_YEAR&lt;/TD&gt;&lt;TD&gt;CONDITION&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;STATUS&lt;/TD&gt;&lt;TD&gt;FIRST_FOUND&lt;/TD&gt;&lt;TD&gt;count&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1ABCDEFG2345&lt;/TD&gt;&lt;TD&gt;4567&lt;/TD&gt;&lt;TD&gt;2018&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;NEW&lt;/TD&gt;&lt;TD&gt;IT&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Code Below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data source_detail_1 (keep=Primary_ID Secondary_ID YEAR CONDITION STATUS FIRST_FOUND COUNT YEAR1 );&lt;BR /&gt;set source_detail (where=(PRIMARY_ID='1ABCDEFG2345')) ;&lt;BR /&gt;retain first_found;&lt;BR /&gt;YEAR1= MAX(YEAR);&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Aug 2019 20:46:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Struggling-with-Data-Step-retain-function/m-p/579994#M164706</guid>
      <dc:creator>bknitch</dc:creator>
      <dc:date>2019-08-08T20:46:02Z</dc:date>
    </item>
    <item>
      <title>Re: Struggling with Data Step retain function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Struggling-with-Data-Step-retain-function/m-p/579995#M164707</link>
      <description>&lt;P&gt;Solved myself&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sort data=WORK.SOURCE_DETAIL; by primary_id year descending first_found ;run;&lt;BR /&gt;data temp1;&lt;BR /&gt;set WORK.SOURCE_DETAIL;&lt;BR /&gt;length first_found1 $3.;&lt;BR /&gt;retain first_found1 ;&lt;BR /&gt;by primary_id year descending first_found ;&lt;BR /&gt;if first.primary_id then do;&lt;BR /&gt;first_found1=first_found;&lt;BR /&gt;end;&lt;BR /&gt;output;&lt;BR /&gt;drop first_found;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Aug 2019 21:01:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Struggling-with-Data-Step-retain-function/m-p/579995#M164707</guid>
      <dc:creator>bknitch</dc:creator>
      <dc:date>2019-08-08T21:01:50Z</dc:date>
    </item>
  </channel>
</rss>

