<?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 create subset of data based on variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/create-subset-of-data-based-on-variables/m-p/576436#M163166</link>
    <description>&lt;P&gt;Hi everyone.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is my sample data set.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;type = procedure type (A or B)&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data hosp1;&lt;BR /&gt;input Admission_Date date9. patient_name :$20.&amp;nbsp; gender :$1. weight type :$1;&lt;BR /&gt;cards;&lt;BR /&gt;11Nov2011 Jim M&amp;nbsp; 100&amp;nbsp;B&lt;BR /&gt;03Feb2010&amp;nbsp;Luna &amp;nbsp;F&amp;nbsp; 92&amp;nbsp; A&lt;BR /&gt;21Apr2011&amp;nbsp;Luna&amp;nbsp; F&amp;nbsp; 88&amp;nbsp; A&lt;BR /&gt;04May2016&amp;nbsp;Grey&amp;nbsp; M&amp;nbsp; 80&amp;nbsp; A&lt;BR /&gt;03May2010&amp;nbsp;Maria&amp;nbsp;F&amp;nbsp; .&amp;nbsp; &amp;nbsp;A&lt;BR /&gt;25Dec2012&amp;nbsp;Maria&amp;nbsp;F&amp;nbsp; 75&amp;nbsp; B&lt;BR /&gt;12Mar2013&amp;nbsp;Maria&amp;nbsp;F&amp;nbsp; 90&amp;nbsp; A&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like an output where if a patient had multiple admission dates (e.g. Maria), the information related to the earliest admission date is selected and if the patient had undergone both types of procedures (A and B) then the patient had Type B procedure.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So the output would look like this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Name of patient&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Gender&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Weight&amp;nbsp; &amp;nbsp; &amp;nbsp;Type of procedure&lt;/P&gt;&lt;P&gt;Jim&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; &amp;nbsp; &amp;nbsp;M&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 100&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B&lt;/P&gt;&lt;P&gt;Luna&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; &amp;nbsp;F&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;92&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A&lt;/P&gt;&lt;P&gt;Grey&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; &amp;nbsp;M&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 90&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A&lt;/P&gt;&lt;P&gt;Maria&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; F&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;75&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yoyong&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 25 Jul 2019 03:24:13 GMT</pubDate>
    <dc:creator>yoyong555</dc:creator>
    <dc:date>2019-07-25T03:24:13Z</dc:date>
    <item>
      <title>create subset of data based on variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/create-subset-of-data-based-on-variables/m-p/576436#M163166</link>
      <description>&lt;P&gt;Hi everyone.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is my sample data set.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;type = procedure type (A or B)&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data hosp1;&lt;BR /&gt;input Admission_Date date9. patient_name :$20.&amp;nbsp; gender :$1. weight type :$1;&lt;BR /&gt;cards;&lt;BR /&gt;11Nov2011 Jim M&amp;nbsp; 100&amp;nbsp;B&lt;BR /&gt;03Feb2010&amp;nbsp;Luna &amp;nbsp;F&amp;nbsp; 92&amp;nbsp; A&lt;BR /&gt;21Apr2011&amp;nbsp;Luna&amp;nbsp; F&amp;nbsp; 88&amp;nbsp; A&lt;BR /&gt;04May2016&amp;nbsp;Grey&amp;nbsp; M&amp;nbsp; 80&amp;nbsp; A&lt;BR /&gt;03May2010&amp;nbsp;Maria&amp;nbsp;F&amp;nbsp; .&amp;nbsp; &amp;nbsp;A&lt;BR /&gt;25Dec2012&amp;nbsp;Maria&amp;nbsp;F&amp;nbsp; 75&amp;nbsp; B&lt;BR /&gt;12Mar2013&amp;nbsp;Maria&amp;nbsp;F&amp;nbsp; 90&amp;nbsp; A&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like an output where if a patient had multiple admission dates (e.g. Maria), the information related to the earliest admission date is selected and if the patient had undergone both types of procedures (A and B) then the patient had Type B procedure.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So the output would look like this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Name of patient&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Gender&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Weight&amp;nbsp; &amp;nbsp; &amp;nbsp;Type of procedure&lt;/P&gt;&lt;P&gt;Jim&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; &amp;nbsp; &amp;nbsp;M&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 100&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B&lt;/P&gt;&lt;P&gt;Luna&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; &amp;nbsp;F&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;92&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A&lt;/P&gt;&lt;P&gt;Grey&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; &amp;nbsp;M&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 90&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A&lt;/P&gt;&lt;P&gt;Maria&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; F&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;75&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yoyong&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2019 03:24:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/create-subset-of-data-based-on-variables/m-p/576436#M163166</guid>
      <dc:creator>yoyong555</dc:creator>
      <dc:date>2019-07-25T03:24:13Z</dc:date>
    </item>
    <item>
      <title>Re: create subset of data based on variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/create-subset-of-data-based-on-variables/m-p/576439#M163169</link>
      <description>&lt;P&gt;Fix your initial data step so I can paste it into SAS.&amp;nbsp; Using the Insert SAS Code icon.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You have a typo in your target output (Grey weight=80 not 90)&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;if a patient had multiple admission dates (e.g. Maria), the information related to the earliest admission date is selected&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Maria's earliest admission date is 03May2010, her weight is missing, not 75.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;See if this helps:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
input admissiondate date9. patientname :$20. gender :$1. weight type :$1.;
format admissiondate date9.;
cards ;
11Nov2011 Jim M 100 B
03Feb2010 Luna F 92 A
21Apr2011 Luna F 88 A
04May2016 Grey  M  80  A
03May2010 Maria F . A
25Dec2012 Maria F 75 B
12Mar2013 Maria F 90 A
run ;

proc sql;
   create table want as
   select b.admissiondate, a.patientname, a.gender, a.weight, b.type
   from have a
   join (
   select patientname, 
          max(type) as type, 
          min(admissiondate) as admissiondate format=date9.
   from have
   group by patientname
   ) b
   on a.patientname=b.patientname
   and a.admissiondate=b.admissiondate
   ;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2019 03:36:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/create-subset-of-data-based-on-variables/m-p/576439#M163169</guid>
      <dc:creator>ScottBass</dc:creator>
      <dc:date>2019-07-25T03:36:13Z</dc:date>
    </item>
    <item>
      <title>Re: create subset of data based on variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/create-subset-of-data-based-on-variables/m-p/576440#M163170</link>
      <description>Thank you very much &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/15043"&gt;@ScottBass&lt;/a&gt;. Sorry about the typo (Grey weight = 80). Also, I wasn't very clear with the last part about the "earliest" admission date. What I actually meant was, if a patient has multiple admission dates and the information related to the earliest date is missing, the information related to the next date is selected. Hence, weight for Maria should be 75. Again, thank you.</description>
      <pubDate>Thu, 25 Jul 2019 03:47:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/create-subset-of-data-based-on-variables/m-p/576440#M163170</guid>
      <dc:creator>yoyong555</dc:creator>
      <dc:date>2019-07-25T03:47:22Z</dc:date>
    </item>
    <item>
      <title>Re: create subset of data based on variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/create-subset-of-data-based-on-variables/m-p/576446#M163175</link>
      <description>&lt;P&gt;Data step solution:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input admission_date date9. patient_name :$20.  gender :$1. weight type :$1.;
format admission_date yymmddd10.;
cards;
11Nov2011 Jim M 100 B
03Feb2010 Luna F 92 A
21Apr2011 Luna F 88 A
04May2016 Grey M 80 A
03May2010 Maria F . A
25Dec2012 Maria F 75 B
12Mar2013 Maria F 90 A
;

data want;
set have (rename=(gender=_gender weight=_weight type=_type));
by patient_name notsorted;
retain gender weight type;
if first.patient_name
then do;
  gender = _gender;
  weight = _weight;
  type = _type;
end;
else do;
  gender = coalescec(gender,_gender);
  weight = coalesce(weight,_weight);
  if _type &amp;gt; type then type = _type;
end;
if last.patient_name;
drop _: admission_date;
run;

proc print data=want noobs;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;PRE&gt;patient_
  name      gender    weight    type

 Jim          M         100      B  
 Luna         F          92      A  
 Grey         M          80      A  
 Maria        F          75      B  
&lt;/PRE&gt;</description>
      <pubDate>Thu, 25 Jul 2019 05:37:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/create-subset-of-data-based-on-variables/m-p/576446#M163175</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-07-25T05:37:48Z</dc:date>
    </item>
  </channel>
</rss>

