<?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: Categorization based on group membership in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631992#M187314</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
select *,ifc(count(distinct course)=1 and course='ESL','REMOVE',"KEEP") as ESL_Filter
from have
group by StudentID;
quit; &lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l header" scope="col"&gt;StudentID&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;Course&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;ESL_Filter&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1234&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1234&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1234&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;5678&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;5678&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;5678&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;9012&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;REMOVE&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;9012&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;REMOVE&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;9012&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;REMOVE&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
    <pubDate>Fri, 13 Mar 2020 17:35:52 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2020-03-13T17:35:52Z</dc:date>
    <item>
      <title>Categorization based on group membership</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631988#M187311</link>
      <description>&lt;P&gt;Hello All&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am working with student data, and want to categorize students on the bases of whether they are enrolled in all English as a Second Language (ESL) courses or not. I have gotten so far as to categorizing their individual courses as ESL or not. Please see the table below, I think it will help:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;StudentID&amp;nbsp; &amp;nbsp; Course&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ESL_Filter&lt;/P&gt;&lt;P&gt;1234&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;&lt;P&gt;1234&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Non-ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;&lt;P&gt;1234&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;&lt;P&gt;5678&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Non-ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;&lt;P&gt;5678&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Non-ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;&lt;P&gt;5678&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Non-ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;&lt;P&gt;9012&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Remove&lt;/P&gt;&lt;P&gt;9012&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Remove&lt;/P&gt;&lt;P&gt;9012&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Remove&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please notice a few things:&lt;/P&gt;&lt;P&gt;- The goal is to create the ESL_Filter column&lt;/P&gt;&lt;P&gt;- Each student has multiple observations (i.e., they're enrolled in multiple courses)&lt;/P&gt;&lt;P&gt;- I want to assign "Remove" &lt;STRONG&gt;only&lt;/STRONG&gt; the students who are enrolled in &lt;STRONG&gt;all ESL courses&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the table sorted on StudentID.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;</description>
      <pubDate>Fri, 13 Mar 2020 17:30:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631988#M187311</guid>
      <dc:creator>bourdeax</dc:creator>
      <dc:date>2020-03-13T17:30:50Z</dc:date>
    </item>
    <item>
      <title>Re: Categorization based on group membership</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631991#M187313</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input (StudentID    Course ) ($);*        ESL_Filter;
cards;
1234            ESL              Keep
1234            Non-ESL      Keep
1234            ESL              Keep
5678            Non-ESL      Keep
5678            Non-ESL      Keep
5678            Non-ESL      Keep
9012            ESL              Remove
9012            ESL              Remove
9012            ESL              Remove
;

proc sql;
create table want as
select *
from have
group by StudentID
having not (count(distinct course)=1 and course='ESL');
quit; &lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l header" scope="col"&gt;StudentID&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;Course&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1234&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1234&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1234&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;5678&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;5678&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;5678&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 13 Mar 2020 17:32:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631991#M187313</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-03-13T17:32:26Z</dc:date>
    </item>
    <item>
      <title>Re: Categorization based on group membership</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631992#M187314</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
select *,ifc(count(distinct course)=1 and course='ESL','REMOVE',"KEEP") as ESL_Filter
from have
group by StudentID;
quit; &lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l header" scope="col"&gt;StudentID&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;Course&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;ESL_Filter&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1234&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1234&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1234&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;5678&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;5678&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;5678&lt;/TD&gt;
&lt;TD class="l data"&gt;Non-ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;KEEP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;9012&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;REMOVE&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;9012&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;REMOVE&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;9012&lt;/TD&gt;
&lt;TD class="l data"&gt;ESL&lt;/TD&gt;
&lt;TD class="l data"&gt;REMOVE&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 13 Mar 2020 17:35:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631992#M187314</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-03-13T17:35:52Z</dc:date>
    </item>
    <item>
      <title>Re: Categorization based on group membership</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631993#M187315</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
select * 
from StudentID
where studentID in (select studentID from have having max(course)=min(course) and min(course) = "ESL");
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Another possible option,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have;
by studentID desc course;
run;

data want;
    set have;
    by studentID desc Course;
    retain flag_delete 0;

     if first.studentID and Course = 'ESL' then flag_delete=1;
     
    if flag_delete = 0;

run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/275440"&gt;@bourdeax&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello All&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am working with student data, and want to categorize students on the bases of whether they are enrolled in all English as a Second Language (ESL) courses or not. I have gotten so far as to categorizing their individual courses as ESL or not. Please see the table below, I think it will help:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;StudentID&amp;nbsp; &amp;nbsp; Course&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ESL_Filter&lt;/P&gt;
&lt;P&gt;1234&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;
&lt;P&gt;1234&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Non-ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;
&lt;P&gt;1234&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;
&lt;P&gt;5678&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Non-ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;
&lt;P&gt;5678&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Non-ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;
&lt;P&gt;5678&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Non-ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; Keep&lt;/P&gt;
&lt;P&gt;9012&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Remove&lt;/P&gt;
&lt;P&gt;9012&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Remove&lt;/P&gt;
&lt;P&gt;9012&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ESL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Remove&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please notice a few things:&lt;/P&gt;
&lt;P&gt;- The goal is to create the ESL_Filter column&lt;/P&gt;
&lt;P&gt;- Each student has multiple observations (i.e., they're enrolled in multiple courses)&lt;/P&gt;
&lt;P&gt;- I want to assign "Remove" &lt;STRONG&gt;only&lt;/STRONG&gt; the students who are enrolled in &lt;STRONG&gt;all ESL courses&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have the table sorted on StudentID.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in advance!&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Mar 2020 17:38:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631993#M187315</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-03-13T17:38:30Z</dc:date>
    </item>
    <item>
      <title>Re: Categorization based on group membership</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631999#M187319</link>
      <description>Thank you, this is exactly what I was looking for!</description>
      <pubDate>Fri, 13 Mar 2020 17:49:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Categorization-based-on-group-membership/m-p/631999#M187319</guid>
      <dc:creator>bourdeax</dc:creator>
      <dc:date>2020-03-13T17:49:30Z</dc:date>
    </item>
  </channel>
</rss>

