Dear all, I'm principiant in managing consequential values in a dataset and I'd like to kindly ask your support to solve my problem. I have data variable with positives and negatives in a by group Id for which I generated the cumulative sum, using retain function. Now I need to manage this sum in the way it does't fall down negative for every row in the group id. If it happens, the goal would be to set that value of the variable to zero and ricalculate the cumulative sum (a sort of excluding of value when it makes the cum sum negative). And then going ahead to the next row checking any other negative on the "new" cumulative sum, until the end of group id. Attached an example. Var1 and var_cum are what I have, var2 and var_cum2 are the goal, myvar2 and myvar_cum2 are the result applying the code below. data example;
do _n_=1 by 1 until(last.id);
set ppp;
by id;
if var_sum>=0 then do;
var2=var;
var_cum2=var_cum;output;
end;
else do;
var2=0;
var_cum2=-var+var_cum;
output;
end;
end;
run; Clearly the code below doesn't reach the goal and I know It's just what I told sas to do. It would take a step by step check, I tried a series of tests but I'm at standstill I'm sure there's one (and simpler) way to do that, maybe without supporting variables or managing it in generating cum sum with some loops and/or particular conditions. I really appreciate your support Very thanks in advance
... View more