<?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: Create start date-end date out of panel data in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Create-start-date-end-date-out-of-panel-data/m-p/720962#M223373</link>
    <description>proc sql;&lt;BR /&gt;create table want as&lt;BR /&gt;select ID, start_date, max(end_date) as end_date&lt;BR /&gt;from have&lt;BR /&gt;group by ID, start_date;&lt;BR /&gt;quit;</description>
    <pubDate>Mon, 22 Feb 2021 16:54:36 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2021-02-22T16:54:36Z</dc:date>
    <item>
      <title>Create start date-end date out of panel data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-start-date-end-date-out-of-panel-data/m-p/720957#M223370</link>
      <description>&lt;P&gt;I have a dataset that is a panel data, that is many ID's for many moments in time. It looks like this:&lt;/P&gt;&lt;PRE class="lang-sql s-code-block hljs"&gt;&lt;CODE&gt;ID &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-type"&gt;Date&lt;/SPAN&gt;       &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-keyword"&gt;Start&lt;/SPAN&gt; &lt;SPAN class="hljs-type"&gt;date&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;02&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;03&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;21&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;2&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;05&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;05&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;2&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;06&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;05&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;2&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;07&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;05&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;10&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;10&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;11&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;10&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;25&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;25&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Where basically,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Date&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;denotes which days the ID appeared on the table, and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Start date&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;the start date of some thing happening (doesn't really matter what in this case).&lt;/P&gt;&lt;P&gt;I want to obtain a table like this:&lt;/P&gt;&lt;PRE class="lang-sql s-code-block hljs"&gt;&lt;CODE&gt;ID &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-keyword"&gt;Start&lt;/SPAN&gt; &lt;SPAN class="hljs-type"&gt;date&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-keyword"&gt;End&lt;/SPAN&gt; &lt;SPAN class="hljs-type"&gt;date&lt;/SPAN&gt; 
&lt;SPAN class="hljs-number"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;03&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;1&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;21&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;2&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;05&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;07&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;10&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;11&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;SPAN class="hljs-number"&gt;3&lt;/SPAN&gt;  &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;25&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="hljs-number"&gt;25&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;01&lt;/SPAN&gt;&lt;SPAN class="hljs-operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="hljs-number"&gt;2021&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Where there is one line per "start date" per ID, and the "end date" is added according to the last date in which the person had that "start date".&lt;/P&gt;&lt;P&gt;This is my proposed code but it's clearly missing something, I think mainly how to specify that the "if" should be done for each Start_date.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class="lang-sql s-code-block hljs"&gt;&lt;CODE&gt;DATA ArrearsPeriods;
    &lt;SPAN class="hljs-keyword"&gt;SET&lt;/SPAN&gt; data;
    &lt;SPAN class="hljs-keyword"&gt;BY&lt;/SPAN&gt; ID Start_date &lt;SPAN class="hljs-type"&gt;Date&lt;/SPAN&gt;;
    RETAIN ID Start_date END_DATE;
    IF last.DateTHEN END_DATE &lt;SPAN class="hljs-operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="hljs-type"&gt;Date&lt;/SPAN&gt;;
RUN;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;If there's a better way of doing this in proc sql, be my guest!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Feb 2021 16:33:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-start-date-end-date-out-of-panel-data/m-p/720957#M223370</guid>
      <dc:creator>catkat96</dc:creator>
      <dc:date>2021-02-22T16:33:05Z</dc:date>
    </item>
    <item>
      <title>Re: Create start date-end date out of panel data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-start-date-end-date-out-of-panel-data/m-p/720962#M223373</link>
      <description>proc sql;&lt;BR /&gt;create table want as&lt;BR /&gt;select ID, start_date, max(end_date) as end_date&lt;BR /&gt;from have&lt;BR /&gt;group by ID, start_date;&lt;BR /&gt;quit;</description>
      <pubDate>Mon, 22 Feb 2021 16:54:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-start-date-end-date-out-of-panel-data/m-p/720962#M223373</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2021-02-22T16:54:36Z</dc:date>
    </item>
  </channel>
</rss>

