<?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: How to create discrete consecutive streaks of visits in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-create-discrete-consecutive-streaks-of-visits/m-p/908058#M358404</link>
    <description>&lt;P&gt;Yes, this is exactly what I've been trying to figure out. Thank you!&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 14 Dec 2023 19:42:21 GMT</pubDate>
    <dc:creator>krl5000</dc:creator>
    <dc:date>2023-12-14T19:42:21Z</dc:date>
    <item>
      <title>How to create discrete consecutive streaks of visits</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-create-discrete-consecutive-streaks-of-visits/m-p/908025#M358391</link>
      <description>&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to figure out how to select participants who have a BMI&amp;gt;=30 for at least 1 year from clinic visit data. I've created a count variable to indicate streaks of consecutive visits with BMI&amp;gt;=30. I want to write code that will create start and end dates for each streak, some participants have more than one unique streak if their BMI hovers around 30.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my example data below, IDs 2 and 3 would meet the criteria and ID 1 would be excluded for not having at least 1 year. IDs 1 and 2 are straight forward- just pull the first and last dates and check if these are &amp;gt;1 year apart. However, I can't figure out how to handle ID 3. They have two unique streaks, but only the second streak meets the requirement of &amp;gt;=1 year. How do I indicate that I want each streak within each ID to have unique start and stop dates?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;BMI_date&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;BMI&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;BMI_Count&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1/2/2020&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;36&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;4/3/2020&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;38&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;5/6/2020&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;36&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;11/18/2020&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;36&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;6/5/2020&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;30&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/17/2020&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;32&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;9/15/2021&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;33&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;7/19/2020&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;35&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;9/1/2020&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;34&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/4/2020&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;32&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/20/2020&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;29&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;6/4/2021&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;30&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1/4/2022&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;30&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;9/14/2022&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;31&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&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 for reading! I'm using SAS 9.4. This is my first post on here, please let me know if I need to include more information.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Dec 2023 15:33:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-create-discrete-consecutive-streaks-of-visits/m-p/908025#M358391</guid>
      <dc:creator>krl5000</dc:creator>
      <dc:date>2023-12-14T15:33:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to create discrete consecutive streaks of visits</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-create-discrete-consecutive-streaks-of-visits/m-p/908034#M358395</link>
      <description>&lt;P&gt;Rather than counting the test dates within a group it is better to generate a group number.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So if you have this input data:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
  input ID BMI_date :yymmdd. BMI ;
  format bmi_date yymmdd10.;
cards;
1 2020-01-02 36
1 2020-04-03 38
1 2020-05-06 36
1 2020-11-18 36
2 2020-06-05 30
2 2020-12-17 32
2 2021-09-15 33
3 2020-07-19 35
3 2020-09-01 34
3 2020-10-04 32
3 2020-12-20 29
3 2021-06-04 30
3 2022-01-04 30
3 2022-09-14 31
;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You can calculate an OVER flag and a GROUP number using a step like this.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data groups;
  set have;
  by id bmi_date;
  over=(bmi &amp;gt;= 30);
  group+(over ne lag(over));
  if first.id then group=1;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Now you have all the information you need to calculate the statistics you need.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc summary data=groups nway;
  by id group over;
  output out=want(drop=_type_) min(bmi_date)=start max(bmi_date)=end ;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Sounds like you want to get this list:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc print;
 where over and intck('year',start,end,'c');
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result&lt;/P&gt;
&lt;PRE&gt;Obs    ID    group    over    _FREQ_         start           end

 2      2      1        1        3      2020-06-05    2021-09-15
 5      3      3        1        3      2021-06-04    2022-09-14

&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Dec 2023 16:17:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-create-discrete-consecutive-streaks-of-visits/m-p/908034#M358395</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2023-12-14T16:17:52Z</dc:date>
    </item>
    <item>
      <title>Re: How to create discrete consecutive streaks of visits</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-create-discrete-consecutive-streaks-of-visits/m-p/908058#M358404</link>
      <description>&lt;P&gt;Yes, this is exactly what I've been trying to figure out. Thank you!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Dec 2023 19:42:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-create-discrete-consecutive-streaks-of-visits/m-p/908058#M358404</guid>
      <dc:creator>krl5000</dc:creator>
      <dc:date>2023-12-14T19:42:21Z</dc:date>
    </item>
  </channel>
</rss>

