<?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 an incremental grouping variable based on lagged values? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-create-an-incremental-grouping-variable-based-on-lagged/m-p/812708#M320666</link>
    <description>&lt;P&gt;That's my bad. Essentially all consecutive 1s in the to_combine column should have a unique group number (missing rows are indicative of a new group number that needs to be started).&lt;/P&gt;</description>
    <pubDate>Wed, 11 May 2022 16:54:26 GMT</pubDate>
    <dc:creator>Ani7</dc:creator>
    <dc:date>2022-05-11T16:54:26Z</dc:date>
    <item>
      <title>How to create an incremental grouping variable based on lagged values?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-create-an-incremental-grouping-variable-based-on-lagged/m-p/812696#M320659</link>
      <description>&lt;P&gt;I have a table of values with the relevant column containing information on which rows need to be combined in my final table that looks like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;to_combine&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&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;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;.&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;I would like to create a new variable that creates a new group for each of these "groups of 1s" that would look like this&lt;/P&gt;
&lt;TABLE width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;to_combine&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;group&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;4&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="50%"&gt;
&lt;P&gt;.&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;How would I go about creating this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried creating an "obs" variable and setting it so that if to_combine = 1 then obs = lag(obs). However, that seems to set obs to the last row that had to_combine = 1 instead of the immediately preceding row.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 May 2022 15:52:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-create-an-incremental-grouping-variable-based-on-lagged/m-p/812696#M320659</guid>
      <dc:creator>Ani7</dc:creator>
      <dc:date>2022-05-11T15:52:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to create an incremental grouping variable based on lagged values?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-create-an-incremental-grouping-variable-based-on-lagged/m-p/812699#M320660</link>
      <description>&lt;P&gt;You don't state explicitly what the rule is for creating a new group. It always helps to be clear and not expect us to figure it out (sometimes we get it wrong). So is the separator for a new group one missing value? What if there are multiple missing values in a row?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 May 2022 16:27:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-create-an-incremental-grouping-variable-based-on-lagged/m-p/812699#M320660</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-05-11T16:27:43Z</dc:date>
    </item>
    <item>
      <title>Re: How to create an incremental grouping variable based on lagged values?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-create-an-incremental-grouping-variable-based-on-lagged/m-p/812708#M320666</link>
      <description>&lt;P&gt;That's my bad. Essentially all consecutive 1s in the to_combine column should have a unique group number (missing rows are indicative of a new group number that needs to be started).&lt;/P&gt;</description>
      <pubDate>Wed, 11 May 2022 16:54:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-create-an-incremental-grouping-variable-based-on-lagged/m-p/812708#M320666</guid>
      <dc:creator>Ani7</dc:creator>
      <dc:date>2022-05-11T16:54:26Z</dc:date>
    </item>
    <item>
      <title>Re: How to create an incremental grouping variable based on lagged values?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-create-an-incremental-grouping-variable-based-on-lagged/m-p/812734#M320682</link>
      <description>&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
    set have;
    if _n_=1 then newgroup=1;
    if missing(to_combine) then newgroup+1;
    if not missing(to_combine) then group=newgroup;
    else group=.;
    drop newgroup;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 11 May 2022 17:23:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-create-an-incremental-grouping-variable-based-on-lagged/m-p/812734#M320682</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-05-11T17:23:39Z</dc:date>
    </item>
  </channel>
</rss>

