<?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: Counting number of obs within by group based on the variable value in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800302#M314780</link>
    <description>This approach is working perfectly as well. I wish that I can accept both solutions.</description>
    <pubDate>Sat, 05 Mar 2022 03:04:30 GMT</pubDate>
    <dc:creator>windy</dc:creator>
    <dc:date>2022-03-05T03:04:30Z</dc:date>
    <item>
      <title>Counting number of obs within by group based on the variable value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800024#M314646</link>
      <description>&lt;P&gt;Hi everyone,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a problem with counting the number of observations within by group and based on the change in variable value. Let's me clarify it by the data set example:&lt;/P&gt;
&lt;P&gt;I want to create a new variable - wanted - based on the number of values 0 and 1 in the variable indicator. The indicator values can change from 0 to 1 and vice versa. I want to count the number of each batch of value 0 or 1. The count need to be based on the by group (ID) as well. If I can add variables showing the start_time and end_time of each batch within by group, it would be awesome.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;TABLE width="391"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;ID&lt;/TD&gt;
&lt;TD width="64"&gt;time&lt;/TD&gt;
&lt;TD width="64"&gt;indicator&lt;/TD&gt;
&lt;TD width="64"&gt;&lt;FONT color="#FF0000"&gt;wanted&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="71"&gt;&lt;FONT color="#FF0000"&gt;start_time&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="64"&gt;&lt;FONT color="#FF0000"&gt;end_time&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;13&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you so much in advance for all your support.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kind regards,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Windy.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 04 Mar 2022 01:18:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800024#M314646</guid>
      <dc:creator>windy</dc:creator>
      <dc:date>2022-03-04T01:18:33Z</dc:date>
    </item>
    <item>
      <title>Re: Counting number of obs within by group based on the variable value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800047#M314668</link>
      <description>&lt;P&gt;Here's one approach&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;data have ;
    input ID Time Indicator ;
    cards ;
1 1 1 
1 2 1 
1 3 1 
1 4 1 
1 5 0 
1 6 0 
1 7 0 
1 8 1 
1 9 1 
1 10 1 
1 11 1 
2 1 1 
2 2 1 
2 3 1 
2 4 1 
2 5 1 
2 6 1 
2 7 0 
2 8 0 
2 9 0 
2 10 0 
2 11 0 
2 12 1 
2 13 1 
2 14 1 
2 15 1
;
run ;

proc sort data=have ;
    by ID Time Indicator ;

data want ;
    do until(Last.Indicator) ;
        set have ;
        by Id Indicator notsorted;
        Wanted=sum(Wanted,1) ;
        if first.Indicator then Start_Time=Time ;
        if last.Indicator then End_Time=Time ;
    end ;

    do until(Last.Indicator) ;
        set Have ;
        by Id Indicator notsorted;
        output ;
    end ;
run ;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 04 Mar 2022 03:15:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800047#M314668</guid>
      <dc:creator>seemiyah</dc:creator>
      <dc:date>2022-03-04T03:15:19Z</dc:date>
    </item>
    <item>
      <title>Re: Counting number of obs within by group based on the variable value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800119#M314709</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
    input ID Time Indicator ;
    cards ;
1 1 1 
1 2 1 
1 3 1 
1 4 1 
1 5 0 
1 6 0 
1 7 0 
1 8 1 
1 9 1 
1 10 1 
1 11 1 
2 1 1 
2 2 1 
2 3 1 
2 4 1 
2 5 1 
2 6 1 
2 7 0 
2 8 0 
2 9 0 
2 10 0 
2 11 0 
2 12 1 
2 13 1 
2 14 1 
2 15 1
;
run ;

data temp;
  set have ;
  by Id Indicator notsorted;
  if first.Indicator then group+1;
run;
proc sql;
create table want as
select *,count(*) as want,
 min(Time) as start_time,
 max(Time) as end_time
 from temp
  group by group;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 04 Mar 2022 12:40:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800119#M314709</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2022-03-04T12:40:13Z</dc:date>
    </item>
    <item>
      <title>Re: Counting number of obs within by group based on the variable value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800301#M314779</link>
      <description>Thank you so much for your help.</description>
      <pubDate>Sat, 05 Mar 2022 03:03:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800301#M314779</guid>
      <dc:creator>windy</dc:creator>
      <dc:date>2022-03-05T03:03:38Z</dc:date>
    </item>
    <item>
      <title>Re: Counting number of obs within by group based on the variable value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800302#M314780</link>
      <description>This approach is working perfectly as well. I wish that I can accept both solutions.</description>
      <pubDate>Sat, 05 Mar 2022 03:04:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-number-of-obs-within-by-group-based-on-the-variable/m-p/800302#M314780</guid>
      <dc:creator>windy</dc:creator>
      <dc:date>2022-03-05T03:04:30Z</dc:date>
    </item>
  </channel>
</rss>

