<?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: group sum with conditions inside a condition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847808#M335181</link>
    <description>&lt;P&gt;UNTESTED CODE since you did not provide data&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* UNTESTED CODE */
data want;
    set have;
    by id;
    if first.id then total=0;
    if a=1 and b=0 then total+d;
    if last.id then do;
        f=total/e;
        output;
    end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 05 Dec 2022 15:53:33 GMT</pubDate>
    <dc:creator>PaigeMiller</dc:creator>
    <dc:date>2022-12-05T15:53:33Z</dc:date>
    <item>
      <title>group sum with conditions inside a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847802#M335179</link>
      <description>&lt;P&gt;Hi Community,&lt;/P&gt;
&lt;P&gt;I&amp;nbsp; have a long dataset while there are multiple records per id. I want to create a dataset and it is one record per id under the conditions as:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;if condition a=1, then under the condition b=0, get a total sum of d. When the last id, use that total sum to be divided by e to get f and output.&lt;/P&gt;
&lt;P&gt;I have test the codes using a single id is fine (where statement),however, if I use it into more ids, the answer is wrong. There are somethings I miss in the codes. Or please suggest a better way to do it.&amp;nbsp; Your suggestion is appreciated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;BR /&gt;set have;*sorted;&lt;BR /&gt;by id;&lt;BR /&gt;retain total;&lt;/P&gt;
&lt;P&gt;/*where id =aa;*/&lt;BR /&gt;if a=1 then&lt;BR /&gt;do;&lt;BR /&gt;if b = 0 then&lt;BR /&gt;do;&lt;BR /&gt;if first.id then&lt;BR /&gt;total=d;&lt;BR /&gt;else total=sum(total,d);&lt;BR /&gt;end;&lt;/P&gt;
&lt;P&gt;if last.id then&lt;BR /&gt;do;&lt;BR /&gt;f=total/e;&lt;BR /&gt;output;&lt;BR /&gt;end;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Dec 2022 15:04:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847802#M335179</guid>
      <dc:creator>CHL0320</dc:creator>
      <dc:date>2022-12-05T15:04:25Z</dc:date>
    </item>
    <item>
      <title>Re: group sum with conditions inside a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847808#M335181</link>
      <description>&lt;P&gt;UNTESTED CODE since you did not provide data&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* UNTESTED CODE */
data want;
    set have;
    by id;
    if first.id then total=0;
    if a=1 and b=0 then total+d;
    if last.id then do;
        f=total/e;
        output;
    end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 05 Dec 2022 15:53:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847808#M335181</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-12-05T15:53:33Z</dc:date>
    </item>
    <item>
      <title>Re: group sum with conditions inside a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847827#M335184</link>
      <description>&lt;P&gt;Here is the sample dataset:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;have&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 240pt;" border="0" width="320" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD width="64" height="19" style="height: 14.5pt; width: 48pt;"&gt;ID&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;a&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;b&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;d&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;e&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;aa&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;10&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;aa&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;9&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;aa&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;7&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;aa&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;4&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;aa&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;8&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;aa&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;aa&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;8&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;bb&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;bb&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;4&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;bb&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;bb&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;6&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;bb&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;6&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;bb&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;9&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;bb&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;4&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Want&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 288pt;" border="0" width="384" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD width="64" height="19" style="height: 14.5pt; width: 48pt;"&gt;ID&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;a&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;b&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;d&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;e&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;f&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;aa&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;10&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;TD align="right"&gt;5.666667&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.5pt;"&gt;
&lt;TD height="19" style="height: 14.5pt;"&gt;bb&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;12&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;TD align="right"&gt;15&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Mon, 05 Dec 2022 16:21:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847827#M335184</guid>
      <dc:creator>CHL0320</dc:creator>
      <dc:date>2022-12-05T16:21:12Z</dc:date>
    </item>
    <item>
      <title>Re: group sum with conditions inside a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847828#M335185</link>
      <description>&lt;P&gt;Since you have the data and you have the code, I request that you test it.&lt;/P&gt;</description>
      <pubDate>Mon, 05 Dec 2022 16:25:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847828#M335185</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-12-05T16:25:14Z</dc:date>
    </item>
    <item>
      <title>Re: group sum with conditions inside a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847829#M335186</link>
      <description>&lt;P&gt;I did. Thank you and it works.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Dec 2022 16:26:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/847829#M335186</guid>
      <dc:creator>CHL0320</dc:creator>
      <dc:date>2022-12-05T16:26:20Z</dc:date>
    </item>
    <item>
      <title>Re: group sum with conditions inside a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/851275#M336447</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;
&lt;P&gt;I have a different condition but the first.id if it is in the condition (a=1 and b=1) cannot be set to 0, and it shoule be the value of c. How to deal with this situtation? Thank you for your helps.&lt;/P&gt;
&lt;P&gt;Here is the sample data.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines dlm="09"x dsd truncover;
input id $ a b c d;
datalines;
aa	1	1	10	3
aa	2	0	9	3
aa	1	1	7	3
aa	1	0	4	3
aa	2	1	8	3
aa	1	0	3	3
aa	2	1	8	3
bb	1	0	6	2
bb	1	1	3	2
bb	2	1	7	2
bb	1	0	6	2
bb	1	0	6	2
bb	1	1	9	2
bb	2	0	4	2
bb	1	1	8	2
bb	1	0	4	2
bb	1	1	3	2
cc	1	1	4	2
cc	1	0	6	2
cc	1	1	9	2
cc	2	0	4	2
;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The data I want is as&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 144pt;" border="0" width="192" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="64" height="20" style="height: 15.0pt; width: 48pt;"&gt;id&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;total&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;e&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" style="height: 15.0pt;"&gt;aa&lt;/TD&gt;
&lt;TD align="right"&gt;17&lt;/TD&gt;
&lt;TD align="right"&gt;5.666667&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" style="height: 15.0pt;"&gt;bb&lt;/TD&gt;
&lt;TD align="right"&gt;23&lt;/TD&gt;
&lt;TD align="right"&gt;11.5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" style="height: 15.0pt;"&gt;cc&lt;/TD&gt;
&lt;TD align="right"&gt;13&lt;/TD&gt;
&lt;TD align="right"&gt;6.5&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Tue, 27 Dec 2022 21:23:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/851275#M336447</guid>
      <dc:creator>CHL0320</dc:creator>
      <dc:date>2022-12-27T21:23:32Z</dc:date>
    </item>
    <item>
      <title>Re: group sum with conditions inside a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/851276#M336448</link>
      <description>Please provide a more clear explanation. I don't understand what you are asking.&lt;BR /&gt;&lt;BR /&gt;Also, what is column E?</description>
      <pubDate>Tue, 27 Dec 2022 21:43:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/851276#M336448</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-12-27T21:43:56Z</dc:date>
    </item>
    <item>
      <title>Re: group sum with conditions inside a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/851308#M336465</link>
      <description>&lt;P&gt;The condition of the sum is : within ID, sum(c) to get total for all records in which a=1 and b=1 and then divide total by d to get e.&lt;/P&gt;
&lt;P&gt;In the cases, id="aa" or "cc", their first ids fit the condition of a=1 and b=1, while the first id of case "bb" did not fit the condition of a=1 and b=1.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2022 07:45:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/851308#M336465</guid>
      <dc:creator>CHL0320</dc:creator>
      <dc:date>2022-12-28T07:45:03Z</dc:date>
    </item>
    <item>
      <title>Re: group sum with conditions inside a condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/851352#M336485</link>
      <description>&lt;P&gt;I am able to get the result using codes like below.&lt;/P&gt;
&lt;PRE&gt;data want (keep=id total e);
	set have;
	by id;
	where a=1;

	if b^=1 then
		sum=0;
	else if b=1 then
		sum=c;

	if first.id then
		total=0;
	total + sum;

	if last.id then
		do;
			e=total/d;
			output;
		end;
run;&lt;/PRE&gt;</description>
      <pubDate>Wed, 28 Dec 2022 14:46:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/group-sum-with-conditions-inside-a-condition/m-p/851352#M336485</guid>
      <dc:creator>CHL0320</dc:creator>
      <dc:date>2022-12-28T14:46:29Z</dc:date>
    </item>
  </channel>
</rss>

