<?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: Enumerate by group, but sorted by dates in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Enumerate-by-group-but-sorted-by-dates/m-p/811860#M320267</link>
    <description>&lt;P&gt;You need to tell the data step that the you want the BY statement to work even though the data is NOT sorted by those variables.&lt;/P&gt;
&lt;P&gt;Use the NOTSORTED keyword.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data add_count;
  set test_data;
  by type notsorted;
  count +1;
  if first.type then count=1;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you want the numbering to reset also when KEY changes that add that variable to the BY statement also.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 06 May 2022 12:39:20 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2022-05-06T12:39:20Z</dc:date>
    <item>
      <title>Enumerate by group, but sorted by dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Enumerate-by-group-but-sorted-by-dates/m-p/811855#M320265</link>
      <description>&lt;P&gt;I have a data set that I'm trying to add a count variable for. Here is s my dataset:&lt;/P&gt;
&lt;TABLE width="203"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;key&lt;/TD&gt;
&lt;TD width="75"&gt;date&lt;/TD&gt;
&lt;TD width="64"&gt;type&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;1/28/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;2/15/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;2/28/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;3/6/2022&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;4/1/2022&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;4/15/2022&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;5/1/2022&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1133&lt;/TD&gt;
&lt;TD&gt;12/21/2021&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1133&lt;/TD&gt;
&lt;TD&gt;1/20/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1133&lt;/TD&gt;
&lt;TD&gt;3/18/2022&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1133&lt;/TD&gt;
&lt;TD&gt;4/4/2022&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1133&lt;/TD&gt;
&lt;TD&gt;5/3/2022&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3434&lt;/TD&gt;
&lt;TD&gt;2/16/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3434&lt;/TD&gt;
&lt;TD&gt;3/10/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3434&lt;/TD&gt;
&lt;TD&gt;4/3/2022&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;C&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've tried to use the following code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data add_count;
	set test_data;
	count +1;
	by type;

if first.type then count=1;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;However, this does not work. I get the following error:&lt;/P&gt;
&lt;P&gt;ERROR: BY variables are not properly sorted on data set WORK.test_data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I need to count the type, for each key in the order they are sorted by date. If I add in the "date" to the by statement in the code above, then my count is just 1 for every observation, since the dates are different.&lt;/P&gt;
&lt;P&gt;How can I get this output:&lt;/P&gt;
&lt;TABLE width="267"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;key&lt;/TD&gt;
&lt;TD width="75"&gt;date&lt;/TD&gt;
&lt;TD width="64"&gt;type&lt;/TD&gt;
&lt;TD width="64"&gt;count&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;1/28/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;2/15/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;2/28/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;3/6/2022&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;4/1/2022&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;4/15/2022&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1234&lt;/TD&gt;
&lt;TD&gt;5/1/2022&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1133&lt;/TD&gt;
&lt;TD&gt;12/21/2021&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1133&lt;/TD&gt;
&lt;TD&gt;1/20/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1133&lt;/TD&gt;
&lt;TD&gt;3/18/2022&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1133&lt;/TD&gt;
&lt;TD&gt;4/4/2022&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1133&lt;/TD&gt;
&lt;TD&gt;5/3/2022&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3434&lt;/TD&gt;
&lt;TD&gt;2/16/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3434&lt;/TD&gt;
&lt;TD&gt;3/10/2022&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3434&lt;/TD&gt;
&lt;TD&gt;4/3/2022&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;1&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!&lt;/P&gt;</description>
      <pubDate>Fri, 06 May 2022 12:29:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Enumerate-by-group-but-sorted-by-dates/m-p/811855#M320265</guid>
      <dc:creator>Keegan</dc:creator>
      <dc:date>2022-05-06T12:29:03Z</dc:date>
    </item>
    <item>
      <title>Re: Enumerate by group, but sorted by dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Enumerate-by-group-but-sorted-by-dates/m-p/811858#M320266</link>
      <description>&lt;P&gt;Try this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;	by key notsorted type;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This assumes that all values of KEY are consecutive, and that all values of TYPE are consecutive.&lt;/P&gt;</description>
      <pubDate>Fri, 06 May 2022 12:35:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Enumerate-by-group-but-sorted-by-dates/m-p/811858#M320266</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-05-06T12:35:07Z</dc:date>
    </item>
    <item>
      <title>Re: Enumerate by group, but sorted by dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Enumerate-by-group-but-sorted-by-dates/m-p/811860#M320267</link>
      <description>&lt;P&gt;You need to tell the data step that the you want the BY statement to work even though the data is NOT sorted by those variables.&lt;/P&gt;
&lt;P&gt;Use the NOTSORTED keyword.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data add_count;
  set test_data;
  by type notsorted;
  count +1;
  if first.type then count=1;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you want the numbering to reset also when KEY changes that add that variable to the BY statement also.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 May 2022 12:39:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Enumerate-by-group-but-sorted-by-dates/m-p/811860#M320267</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2022-05-06T12:39:20Z</dc:date>
    </item>
    <item>
      <title>Re: Enumerate by group, but sorted by dates</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Enumerate-by-group-but-sorted-by-dates/m-p/811866#M320274</link>
      <description>&lt;P&gt;Wow, that was so easy.. Thank you, that worked perfectly!&lt;/P&gt;</description>
      <pubDate>Fri, 06 May 2022 13:02:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Enumerate-by-group-but-sorted-by-dates/m-p/811866#M320274</guid>
      <dc:creator>Keegan</dc:creator>
      <dc:date>2022-05-06T13:02:11Z</dc:date>
    </item>
  </channel>
</rss>

