<?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 calculate sum mean of a set of OBS if duplicates present in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-sum-mean-of-a-set-of-OBS-if-duplicates-present/m-p/340034#M77667</link>
    <description>&lt;P&gt;Dear,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much. That works for me. But the output data has only OBS with AVG calculated. I need to have all the OBS in the output. Please help.&amp;nbsp;Thank you very much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Output getting with the code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 1 dbp 88 2010-04-28&lt;BR /&gt;1 1 dbp 90 2010-04-28&lt;BR /&gt;1 1 dbp 92 2010-04-28&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;1 1 dbp7 90&amp;nbsp;&lt;SPAN&gt;2010-04-28&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2 1 dbp 100 2010-05-27&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 98 2010-05-27&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 96 2010-05-27&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;2 1 dbp7 98&amp;nbsp;&lt;SPAN&gt;2010-05-27&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;output needed:&lt;/P&gt;&lt;P&gt;1 1 dbp 88 2010-04-28&lt;BR /&gt;1 1 dbp 90 2010-04-28&lt;BR /&gt;1 1 dbp 92 2010-04-28&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;1 1 dbp7 90&amp;nbsp;&lt;SPAN&gt;2010-04-28&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2 1 dbp 100 2010-05-27&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 98 2010-05-27&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 96 2010-05-27&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;2 1 dbp7 98&amp;nbsp;&lt;SPAN&gt;2010-05-27&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;2 1 dbp 100 2010-05-28&lt;BR /&gt;2 1 dbp 98 2010-05-28&lt;BR /&gt;2 1 dbp 96 2010-05-28&lt;BR /&gt;2 1 dbp 94 2010-05-29&lt;BR /&gt;2 1 dbp 92 2010-05-29&lt;BR /&gt;2 1 dbp 90 2010-05-29&lt;/P&gt;</description>
    <pubDate>Fri, 10 Mar 2017 16:59:39 GMT</pubDate>
    <dc:creator>knveraraju91</dc:creator>
    <dc:date>2017-03-10T16:59:39Z</dc:date>
    <item>
      <title>How to calculate sum mean of a set of OBS if duplicates present</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-sum-mean-of-a-set-of-OBS-if-duplicates-present/m-p/339881#M77588</link>
      <description>&lt;P&gt;Dear,&lt;/P&gt;&lt;P&gt;I am running the following code for my the data one. I got the out I need. But in my data sevearl similar OBS present. I need to only one average value by id visit test date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For the subject I need to have only average for first.date (&lt;SPAN&gt;2010-05-27&lt;/SPAN&gt;&lt;SPAN&gt;). In my output I am getting avg for the dates&amp;nbsp;2010-05-28, 2010-05-29. Please help.Thank you&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data one;&lt;BR /&gt;input id visit test $ val date $19.;&lt;BR /&gt;datalines;&lt;BR /&gt;1 1 dbp 88 2010-04-28&lt;BR /&gt;1 1 dbp 90 2010-04-28&lt;BR /&gt;1 1 dbp 92 2010-04-28&lt;BR /&gt;2 1 dbp 100 2010-05-28&lt;BR /&gt;2 1 dbp 98 2010-05-28&lt;BR /&gt;2 1 dbp 96 2010-05-28&lt;BR /&gt;2 1 dbp 94 2010-05-29&lt;BR /&gt;2 1 dbp 92 2010-05-29&lt;BR /&gt;2 1 dbp 90 2010-05-29&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2 1 dbp 100 2010-05-27&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 98 2010-05-27&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 96 2010-05-27&lt;/SPAN&gt;&lt;BR /&gt;;&lt;BR /&gt;proc sort data=one;&lt;BR /&gt;by id visit test date;&lt;BR /&gt;run;&lt;BR /&gt;data two(drop=n vsum);&lt;BR /&gt;set one;&lt;BR /&gt;by id visit test date;&lt;BR /&gt;&lt;BR /&gt;vsum+val;&lt;BR /&gt;n+1;&lt;BR /&gt;if first.date then do;&lt;BR /&gt;n=1; vsum=val;&lt;BR /&gt;end;&lt;BR /&gt;output;&lt;BR /&gt;if last.date then do;&lt;BR /&gt;test=cats(test,'7');&lt;BR /&gt;val=vsum/n;&lt;BR /&gt;output;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;output needed:&lt;/P&gt;&lt;P&gt;1 1 dbp 88 2010-04-28&lt;BR /&gt;1 1 dbp 90 2010-04-28&lt;BR /&gt;1 1 dbp 92 2010-04-28&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;1 1 dbp7 90&amp;nbsp;&lt;SPAN&gt;2010-04-28&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2 1 dbp 100 2010-05-27&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 98 2010-05-27&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 96 2010-05-27&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;2 1 dbp7 98&amp;nbsp;&lt;SPAN&gt;2010-05-27&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;2 1 dbp 100 2010-05-28&lt;BR /&gt;2 1 dbp 98 2010-05-28&lt;BR /&gt;2 1 dbp 96 2010-05-28&lt;BR /&gt;2 1 dbp 94 2010-05-29&lt;BR /&gt;2 1 dbp 92 2010-05-29&lt;BR /&gt;2 1 dbp 90 2010-05-29&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Mar 2017 04:47:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-sum-mean-of-a-set-of-OBS-if-duplicates-present/m-p/339881#M77588</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2017-03-10T04:47:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate sum mean of a set of OBS if duplicates present</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-sum-mean-of-a-set-of-OBS-if-duplicates-present/m-p/340020#M77660</link>
      <description>&lt;P&gt;What is the purpose of the resulting data set?&lt;/P&gt;
&lt;P&gt;I ask because placing summary values in side a dataset can cause all sorts of problems if you forget, or some else uses the set unaware, of the presence of the summary rows. Using that data with the inserted values in any other analysis is very likely to yield incorrect results.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or suppose you accidentally re-run this step on the same data. You will then incorporate your previous average in calculating a new average.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data two(drop=n vsum group ldate);
   set one;
   by id visit test date;

   vsum+val;
   n+1;
   ldate=lag(date);
   if first.id then group=1;
   else if first.date and ldate ne date then group+1;
   if first.date then do;
      n=1; 
      vsum=val;
   end;
   if group = 1 then output;
   if last.date and group= 1then do;
      test=cats(test,'7');
      val=vsum/n;
      output;
   end;
run;&lt;/PRE&gt;
&lt;P&gt;Please post code in the forum code box opened with the {i} menu icon. It is hard to read when formatting is removed by posting in the main message window.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;By the way, you are relying on a default length for Test to be longer than your final desired with that 7 appended. If the actual length of values for TEST is 8 characters then the&lt;/P&gt;
&lt;P&gt;&lt;FONT face="SAS Monospace" size="2"&gt;test=cats(test,&lt;/FONT&gt;&lt;FONT color="#800080" face="SAS Monospace" size="2"&gt;'7'&lt;/FONT&gt;&lt;FONT face="SAS Monospace" size="2"&gt;)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="SAS Monospace" size="2"&gt;fails as the result is too long to fit in the default 8 characters assigned by the input in the data one.&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Mar 2017 16:03:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-sum-mean-of-a-set-of-OBS-if-duplicates-present/m-p/340020#M77660</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-03-10T16:03:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate sum mean of a set of OBS if duplicates present</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-sum-mean-of-a-set-of-OBS-if-duplicates-present/m-p/340034#M77667</link>
      <description>&lt;P&gt;Dear,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much. That works for me. But the output data has only OBS with AVG calculated. I need to have all the OBS in the output. Please help.&amp;nbsp;Thank you very much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Output getting with the code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 1 dbp 88 2010-04-28&lt;BR /&gt;1 1 dbp 90 2010-04-28&lt;BR /&gt;1 1 dbp 92 2010-04-28&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;1 1 dbp7 90&amp;nbsp;&lt;SPAN&gt;2010-04-28&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2 1 dbp 100 2010-05-27&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 98 2010-05-27&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 96 2010-05-27&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;2 1 dbp7 98&amp;nbsp;&lt;SPAN&gt;2010-05-27&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;output needed:&lt;/P&gt;&lt;P&gt;1 1 dbp 88 2010-04-28&lt;BR /&gt;1 1 dbp 90 2010-04-28&lt;BR /&gt;1 1 dbp 92 2010-04-28&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;1 1 dbp7 90&amp;nbsp;&lt;SPAN&gt;2010-04-28&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2 1 dbp 100 2010-05-27&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 98 2010-05-27&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 1 dbp 96 2010-05-27&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;2 1 dbp7 98&amp;nbsp;&lt;SPAN&gt;2010-05-27&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;2 1 dbp 100 2010-05-28&lt;BR /&gt;2 1 dbp 98 2010-05-28&lt;BR /&gt;2 1 dbp 96 2010-05-28&lt;BR /&gt;2 1 dbp 94 2010-05-29&lt;BR /&gt;2 1 dbp 92 2010-05-29&lt;BR /&gt;2 1 dbp 90 2010-05-29&lt;/P&gt;</description>
      <pubDate>Fri, 10 Mar 2017 16:59:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-sum-mean-of-a-set-of-OBS-if-duplicates-present/m-p/340034#M77667</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2017-03-10T16:59:39Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate sum mean of a set of OBS if duplicates present</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-sum-mean-of-a-set-of-OBS-if-duplicates-present/m-p/340035#M77668</link>
      <description>&lt;P&gt;Dear,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I just posted for asking help. I modified your code to get output I need. Could please check and suggest if this is ok. Thank you very much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;modified code:&lt;/P&gt;&lt;PRE&gt;data two(drop=n vsum group ldate);
   set one;
   by id visit test date;
output;
   vsum+val;
   n+1;
   ldate=lag(date);
   if first.id then group=1;
   else if first.date and ldate ne date then group+1;
   if first.date then do;
      n=1; 
      vsum=val;
   end;
/*   if group = 1 then output;*/
   if last.date and group= 1 then do;
      test=cats(test,'7');
      val=vsum/n;
      output;
   end;
run;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Mar 2017 17:06:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-sum-mean-of-a-set-of-OBS-if-duplicates-present/m-p/340035#M77668</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2017-03-10T17:06:37Z</dc:date>
    </item>
  </channel>
</rss>

