<?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: Retain observations in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868452#M343067</link>
    <description>Hi, i agree, however, since we know we are adding additional rows for these id's with not completed dates, &lt;BR /&gt;can we set x to missing for these addition rows?&lt;BR /&gt;Thank you .</description>
    <pubDate>Thu, 06 Apr 2023 13:09:29 GMT</pubDate>
    <dc:creator>sascode</dc:creator>
    <dc:date>2023-04-06T13:09:29Z</dc:date>
    <item>
      <title>Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868318#M343003</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I have a dataset as follows:&lt;/P&gt;
&lt;P&gt;data have;&lt;BR /&gt;input Id Date :anydtdte. FirstName $ LastName $ x ;&lt;BR /&gt;format date monyy6. ;&lt;BR /&gt;datalines;&lt;BR /&gt;123 Apr-22 A B 20&lt;BR /&gt;123 Apr-23 A B 30&lt;BR /&gt;123 Apr-24 A B 40&lt;BR /&gt;124 Apr-22 E F 10&lt;BR /&gt;125 Apr-22 G H 10&lt;BR /&gt;125 Apr-23 G H 10&lt;/P&gt;
&lt;P&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As i am showing, ID 124 and125 are not present in all dates. How do i add 2 more rows for id 124 and 1 more row for ID 125, and having x just missing?&lt;BR /&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Apr 2023 17:34:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868318#M343003</guid>
      <dc:creator>sascode</dc:creator>
      <dc:date>2023-04-05T17:34:03Z</dc:date>
    </item>
    <item>
      <title>Re: Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868326#M343008</link>
      <description>Retian process is id 124and 125 based on condition</description>
      <pubDate>Wed, 05 Apr 2023 18:07:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868326#M343008</guid>
      <dc:creator>Venkatram</dc:creator>
      <dc:date>2023-04-05T18:07:24Z</dc:date>
    </item>
    <item>
      <title>Re: Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868327#M343009</link>
      <description>Yes, because these IDs have not data for all 3 dates</description>
      <pubDate>Wed, 05 Apr 2023 18:11:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868327#M343009</guid>
      <dc:creator>sascode</dc:creator>
      <dc:date>2023-04-05T18:11:12Z</dc:date>
    </item>
    <item>
      <title>Re: Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868343#M343018</link>
      <description>&lt;P&gt;So I think you'll want a dataset with all possible combinations of ID and DATE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sort data=have NODUPKEY out=uniq_id(keep=id); by id; run;&lt;/P&gt;&lt;P&gt;proc sort data=have NODUPKEY out=uniq_date(keep=date); by date; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create table all_comb as&lt;/P&gt;&lt;P&gt;&amp;nbsp; select uniq_id.id, uniq_date.date&lt;/P&gt;&lt;P&gt;&amp;nbsp; from uniq_id cross join uniq_date;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*merge all possible combinations with original dataset*/&lt;/P&gt;&lt;P&gt;proc sort data=have; by id date; run;&lt;/P&gt;&lt;P&gt;proc sort data=all_comb; by id date; run;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; merge all_comb(in=a) have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by id date;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if a;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 05 Apr 2023 19:57:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868343#M343018</guid>
      <dc:creator>Seadrago</dc:creator>
      <dc:date>2023-04-05T19:57:20Z</dc:date>
    </item>
    <item>
      <title>Re: Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868382#M343034</link>
      <description>Hi,&lt;BR /&gt;first thank you your help,&lt;BR /&gt;Your code worked and it successfully retained the ID and date, but it did not retain Firstname and Lastname, and instead, FirstName and LastName are empty.&lt;BR /&gt;Thank you.</description>
      <pubDate>Wed, 05 Apr 2023 23:36:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868382#M343034</guid>
      <dc:creator>sascode</dc:creator>
      <dc:date>2023-04-05T23:36:24Z</dc:date>
    </item>
    <item>
      <title>Re: Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868414#M343047</link>
      <description>&lt;P&gt;Are your dates meant to be April 1st in different years, or multiple days in April in a given year?&lt;/P&gt;
&lt;P&gt;If the first, which century are those years in, if the second, which year?&lt;/P&gt;</description>
      <pubDate>Thu, 06 Apr 2023 05:46:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868414#M343047</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2023-04-06T05:46:53Z</dc:date>
    </item>
    <item>
      <title>Re: Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868432#M343054</link>
      <description>&lt;P&gt;You could use PROC SUMMARY with COMPLETETYPES to get the desired results.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Id Date :anydtdte. FirstName $ LastName $ x ;
format date monyy6. ;
datalines;
123 Apr-22 A B 20
123 Apr-23 A B 30
123 Apr-24 A B 40
124 Apr-22 E F 10
125 Apr-22 G H 10
125 Apr-23 G H 10
;
run;

proc summary data=have completetypes nway;
class id date;
id firstname lastname;
var x;
output out=want(drop=_type_ _freq_) sum=;
run;

data want;
set want;
if firstname ne ' ' then temp=firstname;
else firstname=temp;
if lastname ne ' ' then temp1=lastname;
else lastname=temp1;
retain temp temp1;
drop temp temp1;
run;

proc print data=want;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 06 Apr 2023 10:46:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868432#M343054</guid>
      <dc:creator>Kathryn_SAS</dc:creator>
      <dc:date>2023-04-06T10:46:52Z</dc:date>
    </item>
    <item>
      <title>Re: Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868443#M343059</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Id Date :anydtdte. FirstName $ LastName $ x ;
format date monyy6. ;
datalines;
123 Apr-22 A B 20
123 Apr-23 A B 30
123 Apr-24 A B 40
124 Apr-22 E F 10
125 Apr-22 G H 10
125 Apr-23 G H 10
;


proc sql;
create table temp as
select a.*,b.FirstName,b.LastName,b.x
 from 
(select * from (select distinct id from have),(select distinct Date from have)) as a
natural left join have as b
order by id,date;
quit;
data want;
 update temp(obs=0) temp;
 by id;
 output;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 06 Apr 2023 11:48:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868443#M343059</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2023-04-06T11:48:41Z</dc:date>
    </item>
    <item>
      <title>Re: Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868452#M343067</link>
      <description>Hi, i agree, however, since we know we are adding additional rows for these id's with not completed dates, &lt;BR /&gt;can we set x to missing for these addition rows?&lt;BR /&gt;Thank you .</description>
      <pubDate>Thu, 06 Apr 2023 13:09:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868452#M343067</guid>
      <dc:creator>sascode</dc:creator>
      <dc:date>2023-04-06T13:09:29Z</dc:date>
    </item>
    <item>
      <title>Re: Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868453#M343068</link>
      <description>&lt;P&gt;If you run my code that uses PROC SUMMARY, X is set to missing for the additional rows.&lt;/P&gt;</description>
      <pubDate>Thu, 06 Apr 2023 13:17:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868453#M343068</guid>
      <dc:creator>Kathryn_SAS</dc:creator>
      <dc:date>2023-04-06T13:17:25Z</dc:date>
    </item>
    <item>
      <title>Re: Retain observations</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868581#M343126</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/*
Sure just need another data step.
*/
data have;
input Id Date :anydtdte. FirstName $ LastName $ x ;
format date monyy6. ;
datalines;
123 Apr-22 A B 20
123 Apr-23 A B 30
123 Apr-24 A B 40
124 Apr-22 E F 10
125 Apr-22 G H 10
125 Apr-23 G H 10
;


proc sql;
create table temp as
select a.*,b.FirstName,b.LastName,b.x
 from 
(select * from (select distinct id from have),(select distinct Date from have)) as a
natural left join have as b
order by id,date;
quit;
data want;
 update temp(obs=0 drop=x) temp(drop=x);
 by id;
 output;
run;
data final_want;
 merge want temp(keep= id date x);
 by id date;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 07 Apr 2023 11:41:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-observations/m-p/868581#M343126</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2023-04-07T11:41:31Z</dc:date>
    </item>
  </channel>
</rss>

