BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Thalitacosta
Obsidian | Level 7

I have the following code, which is returning the accumulated sum of all observations. But I want the accumulated sum by date.

 

In "proc sql" would do:

 

group by date

 

But in this code that I have, what do I do?

 

data resul1_perf;

set resul_perf;

retain bad_acc good_acc;

if _n_ = 1 then bad_acc = bad;

else bad_acc = bad_acc + bad;

if _n_ = 1 then good_acc = good;

else good_acc = good_acc + good;

dif_acc = abs(bad_acc - good_acc);

FORMAT bad_acc COMMAX20.3;

FORMAT good_acc COMMAX20.3;

FORMAT dif_acc COMMAX20.3;

run;

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26
data resul1_perf;
    set resul_perf;
    by date;
    if first.date then do;
        bad_acc=0;
        good_acc=0;
    end;
    bad_acc + bad;
    good_acc + good;
    dif_acc = abs(bad_acc - good_acc);
    FORMAT bad_acc good_acc dif_acc COMMAX20.3;
run;
--
Paige Miller

View solution in original post

2 REPLIES 2
PaigeMiller
Diamond | Level 26
data resul1_perf;
    set resul_perf;
    by date;
    if first.date then do;
        bad_acc=0;
        good_acc=0;
    end;
    bad_acc + bad;
    good_acc + good;
    dif_acc = abs(bad_acc - good_acc);
    FORMAT bad_acc good_acc dif_acc COMMAX20.3;
run;
--
Paige Miller
Kurt_Bremser
Super User

Use BY in the data step and the first. and last. automatic variables:

proc sort data=resul_perf;
by date;
run;

data resul1_perf;
set resul_perf;
by date;
retain bad_acc good_acc;
if first.date
then do;
  bad_acc = bad;
  good_acc = good;
end;
else do;
  bad_acc = bad_acc + bad;
  good_acc = good_acc + good;
end;
if last.date;
dif_acc = abs(bad_acc - good_acc);
format
  bad_acc
  good_acc
  dif_acc commax20.3
;
run;

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 809 views
  • 0 likes
  • 3 in conversation