<?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 values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834071#M329755</link>
    <description>Appreciate your help. I've millions of records like these I just posted a chunk of data here.</description>
    <pubDate>Mon, 19 Sep 2022 12:11:53 GMT</pubDate>
    <dc:creator>Vasundha</dc:creator>
    <dc:date>2022-09-19T12:11:53Z</dc:date>
    <item>
      <title>Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834060#M329748</link>
      <description>&lt;P&gt;Hi Everyone. I've a variable which has value like below. Here every part is seperated by / .&lt;/P&gt;&lt;PRE&gt;Data have;
Input tpc $30.;
datalines;
abcde1234&amp;amp;9&amp;amp;Y / defgh0987&amp;amp;2&amp;amp;N / attire1790&amp;amp;4&amp;amp;Y
Daikin1290&amp;amp;6&amp;amp;Y / rets0987&amp;amp;2&amp;amp;Y / attire1790&amp;amp;4&amp;amp;Y&lt;BR /&gt;Daikin1290&amp;amp;6&amp;amp;N / rets0987&amp;amp;2&amp;amp;N / attire1790&amp;amp;4&amp;amp;N&lt;BR /&gt;
;
run;&lt;/PRE&gt;&lt;PRE&gt;Required output;
Tpc                                                     countY      countN
abcde1234&amp;amp;9&amp;amp;Y / defgh0987&amp;amp;2&amp;amp;N / attire1790&amp;amp;4&amp;amp;Y             13           2

Daikin1290&amp;amp;6&amp;amp;Y / rets0987&amp;amp;2&amp;amp;Y / attire1790&amp;amp;4&amp;amp;Y             12           0&lt;BR /&gt;Daikin1290&amp;amp;6&amp;amp;N / rets0987&amp;amp;2&amp;amp;N / &lt;STRONG&gt;attire1790&amp;amp;4&amp;amp;N&lt;/STRONG&gt;              0           12&lt;/PRE&gt;&lt;P&gt;I require the count of digits preceded by &amp;amp; in two different fields named countY, countN.&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example: Daikin1290&amp;amp;6&amp;amp;Y / rets0987&amp;amp;2&amp;amp;Y / attire1790&amp;amp;4&amp;amp;Y &amp;nbsp;in this part&amp;nbsp; the digits preceded by &amp;amp; is 6,2,4 so the county is 12 and countN is 0 ,because there's no substring preceded by N. Likewise this approach applicable to each string value.&amp;nbsp;&lt;SPAN&gt;Looking for some support. Thankyou!.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Sep 2022 11:19:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834060#M329748</guid>
      <dc:creator>Vasundha</dc:creator>
      <dc:date>2022-09-19T11:19:22Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834061#M329749</link>
      <description>&lt;P&gt;I don't get it. Why 12 and 13?&lt;/P&gt;</description>
      <pubDate>Mon, 19 Sep 2022 11:37:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834061#M329749</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2022-09-19T11:37:32Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834062#M329750</link>
      <description>It's the sum of the digits preceded by &amp;amp;. My bad, I said it as count l.</description>
      <pubDate>Mon, 19 Sep 2022 11:40:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834062#M329750</guid>
      <dc:creator>Vasundha</dc:creator>
      <dc:date>2022-09-19T11:40:08Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834063#M329751</link>
      <description>&lt;P&gt;is &amp;amp;Y / &amp;amp;N always the last part of the string?&lt;/P&gt;</description>
      <pubDate>Mon, 19 Sep 2022 11:48:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834063#M329751</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2022-09-19T11:48:56Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834065#M329752</link>
      <description>Yes, you're right. And we need to put the sum of digits for &amp;amp;Y , &amp;amp;N in two seperate columns.</description>
      <pubDate>Mon, 19 Sep 2022 11:52:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834065#M329752</guid>
      <dc:creator>Vasundha</dc:creator>
      <dc:date>2022-09-19T11:52:30Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834068#M329753</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data have;
Input tpc $50.;
datalines;
abcde1234&amp;amp;9&amp;amp;Y / defgh0987&amp;amp;2&amp;amp;N / attire1790&amp;amp;4&amp;amp;Y
Daikin1290&amp;amp;6&amp;amp;Y / rets0987&amp;amp;2&amp;amp;Y / attire1790&amp;amp;4&amp;amp;Y
Daikin1290&amp;amp;6&amp;amp;N / rets0987&amp;amp;2&amp;amp;N / attire1790&amp;amp;4&amp;amp;N
;

data want;

   set have;
   
   do i = 1 to countw(tpc, ' / ');
   
      w = scan(tpc, i, ' / ');
      l = substr(w, max(1, length(w) - 1));
      d = prxchange('s/.*&amp;amp;(\d).*/$1/', -1, w);
      
      if l = '&amp;amp;Y' then sumY = sum(sumY, input(d, 8.));
      if l = '&amp;amp;N' then sumN = sum(sumN, input(d, 8.));
     
   end;
   
   keep tpc sumY sumN;

run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 19 Sep 2022 12:08:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834068#M329753</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2022-09-19T12:08:06Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834071#M329755</link>
      <description>Appreciate your help. I've millions of records like these I just posted a chunk of data here.</description>
      <pubDate>Mon, 19 Sep 2022 12:11:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834071#M329755</guid>
      <dc:creator>Vasundha</dc:creator>
      <dc:date>2022-09-19T12:11:53Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834072#M329756</link>
      <description>&lt;P&gt;Sure. Does the code work for you?&lt;/P&gt;</description>
      <pubDate>Mon, 19 Sep 2022 12:13:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834072#M329756</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2022-09-19T12:13:02Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834074#M329757</link>
      <description>It did work but, instead of 0's it got period.</description>
      <pubDate>Mon, 19 Sep 2022 12:16:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834074#M329757</guid>
      <dc:creator>Vasundha</dc:creator>
      <dc:date>2022-09-19T12:16:54Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834076#M329758</link>
      <description>&lt;P&gt;Do you want 0s ?&lt;/P&gt;</description>
      <pubDate>Mon, 19 Sep 2022 12:20:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834076#M329758</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2022-09-19T12:20:27Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834077#M329759</link>
      <description>&lt;P&gt;If you want 0s then simply do&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data have;
Input tpc $50.;
datalines;
abcde1234&amp;amp;9&amp;amp;Y / defgh0987&amp;amp;2&amp;amp;N / attire1790&amp;amp;4&amp;amp;Y
Daikin1290&amp;amp;6&amp;amp;Y / rets0987&amp;amp;2&amp;amp;Y / attire1790&amp;amp;4&amp;amp;Y
Daikin1290&amp;amp;6&amp;amp;N / rets0987&amp;amp;2&amp;amp;N / attire1790&amp;amp;4&amp;amp;N
;

data want;

   set have;
   
   sumY = 0; 
   sumN = 0;
   
   do i = 1 to countw(tpc, ' / ');
   
      w = scan(tpc, i, ' / ');
      l = substr(w, max(1, length(w) - 1));
      d = prxchange('s/.*&amp;amp;(\d).*/$1/', -1, w);
      
      if l = '&amp;amp;Y' then sumY = sum(sumY, input(d, 8.));
      if l = '&amp;amp;N' then sumN = sum(sumN, input(d, 8.));
     
   end;
   
   keep tpc sumY sumN;

run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 19 Sep 2022 12:23:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834077#M329759</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2022-09-19T12:23:49Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834079#M329761</link>
      <description>When I used your code against millions of records, it didn't work. I've got 0's for all the records evenif I initialise SumY, SumN as 0.</description>
      <pubDate>Mon, 19 Sep 2022 12:36:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834079#M329761</guid>
      <dc:creator>Vasundha</dc:creator>
      <dc:date>2022-09-19T12:36:54Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834082#M329762</link>
      <description>&lt;P&gt;Show us the data for a row where the code does not give the right answer.&lt;/P&gt;</description>
      <pubDate>Mon, 19 Sep 2022 13:05:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834082#M329762</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-09-19T13:05:01Z</dc:date>
    </item>
    <item>
      <title>Re: Counting values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834089#M329767</link>
      <description>In my data I've newly added special characters so, for them the if condition mentioned in his code isn't working n also for a long string his code for d taking the last substring followed by /. For instance, in this long string it is considering only the last substring ie. attire1790&amp;amp;4&amp;amp;Y&lt;BR /&gt;abcde1234&amp;amp;9&amp;amp;Y / defgh0987&amp;amp;2&amp;amp;N / attire1790&amp;amp;4&amp;amp;Y.</description>
      <pubDate>Mon, 19 Sep 2022 13:27:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Counting-values/m-p/834089#M329767</guid>
      <dc:creator>Vasundha</dc:creator>
      <dc:date>2022-09-19T13:27:20Z</dc:date>
    </item>
  </channel>
</rss>

