<?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: Flaging of the group when multiple variables meet a condition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869535#M343449</link>
    <description>&lt;P&gt;You might want to slightly change the code to meet &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/76464"&gt;@s_lassen&lt;/a&gt;&amp;nbsp;'s concern:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql ;
  select *
        ,(max(var1 &amp;gt; 0) and max(var2 &amp;gt; 0) as flag
  from have
  group by id
 ;
quit ;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Thu, 13 Apr 2023 09:57:48 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2023-04-13T09:57:48Z</dc:date>
    <item>
      <title>Flaging of the group when multiple variables meet a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869476#M343416</link>
      <description>&lt;P&gt;Dear SAS Community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the following data set:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;id var1 var2&lt;BR /&gt;1 1 0&lt;BR /&gt;1 0 1&lt;BR /&gt;1 1 0&lt;BR /&gt;1 1 0&lt;BR /&gt;2 0 1&lt;BR /&gt;2 0 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can I flag (for example flag=1) the whole group (ID) if var1 and var2 are equal to 1 at least once?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;many thanks in advance!!!&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2023 21:11:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869476#M343416</guid>
      <dc:creator>Zakharkou</dc:creator>
      <dc:date>2023-04-12T21:11:51Z</dc:date>
    </item>
    <item>
      <title>Re: Flaging of the group when multiple variables meet a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869480#M343418</link>
      <description>&lt;P&gt;First thought for DATA step was DOW loop, but SQL could do it too:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
  input id var1 var2 ;
  cards ;
1 1 0
1 0 1
1 1 0
1 1 0
2 0 1
2 0 1
3 1 0
4 1 1
;
run ;

proc sql ;
  select *
        ,(max(var1)=1 and max(var2)=1) as flag
  from have
  group by id
 ;
quit ;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2023 21:41:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869480#M343418</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2023-04-12T21:41:27Z</dc:date>
    </item>
    <item>
      <title>Re: Flaging of the group when multiple variables meet a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869532#M343447</link>
      <description>&lt;P&gt;You can do it with a datastep, like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;                                                                                                                              
  do until(last.id);                                                                                                                    
    set have;                                                                                                                           
    by id;                                                                                                                              
    if var1=1 then flag1=1;                                                                                                             
    if var2=1 then flag2=1;                                                                                                             
    end;                                                                                                                                
  flag=flag1 and flag2;                                                                                                                 
  do until(last.id);                                                                                                                    
    set have;                                                                                                                           
    by id;                                                                                                                              
    output;                                                                                                                             
    end;                                                                                                                                
  drop flag1 flag2;                                                                                                                     
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 13 Apr 2023 09:48:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869532#M343447</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2023-04-13T09:48:46Z</dc:date>
    </item>
    <item>
      <title>Re: Flaging of the group when multiple variables meet a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869534#M343448</link>
      <description>&lt;P&gt;Your SQL solution will only work if 1 is always the maximum value - if there are larger values as well, e.g. 2 or 888, your solution will not find the ones.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2023 09:53:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869534#M343448</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2023-04-13T09:53:18Z</dc:date>
    </item>
    <item>
      <title>Re: Flaging of the group when multiple variables meet a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869535#M343449</link>
      <description>&lt;P&gt;You might want to slightly change the code to meet &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/76464"&gt;@s_lassen&lt;/a&gt;&amp;nbsp;'s concern:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql ;
  select *
        ,(max(var1 &amp;gt; 0) and max(var2 &amp;gt; 0) as flag
  from have
  group by id
 ;
quit ;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 13 Apr 2023 09:57:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869535#M343449</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2023-04-13T09:57:48Z</dc:date>
    </item>
    <item>
      <title>Re: Flaging of the group when multiple variables meet a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869536#M343450</link>
      <description>Agree, I’m assuming that the OP is deriving a flag from other flags.&lt;BR /&gt;</description>
      <pubDate>Thu, 13 Apr 2023 10:00:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869536#M343450</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2023-04-13T10:00:29Z</dc:date>
    </item>
    <item>
      <title>Re: Flaging of the group when multiple variables meet a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869545#M343452</link>
      <description>&lt;P&gt;Actually,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/358041"&gt;@Zakharkou&lt;/a&gt;&amp;nbsp;wanted to find out if there was a 1 in the group, not any positive value, so the SQL solution should be written as&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql ;
  select *
        ,(max(var1 = 1) and max(var2 = 1) as flag
  from have
  group by id
 ;
quit ;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 13 Apr 2023 10:46:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869545#M343452</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2023-04-13T10:46:13Z</dc:date>
    </item>
    <item>
      <title>Re: Flaging of the group when multiple variables meet a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869666#M343515</link>
      <description>&lt;P&gt;Thank you for the numerous solutions. Those 2 variables were indeed flags, so Quentin's solution is the easiest. The solution about the data step is also very interesting. Thanks again to all involved.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2023 21:33:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flaging-of-the-group-when-multiple-variables-meet-a-condition/m-p/869666#M343515</guid>
      <dc:creator>Zakharkou</dc:creator>
      <dc:date>2023-04-13T21:33:53Z</dc:date>
    </item>
  </channel>
</rss>

