Week Sales Cum_Sales
1 160 0
2 390 160
3 800 550
4 995 1350
5 1250 2345
6 1630 3595
7 1750
8 2000
9 2250
10 2500
The columns week and sales are provided in the dataset. I am creating a new column called cumulative_sales where the first entry is always zero and the consecutive entries are the sum of sales one week before that
data B2;
set B2;
by week;
if first.week then cumulative_sales=0;
cumulative_sales = cumulative_sales + sales;
if last.week then output;
run;
Please mention the corrections in the code
Here, you're increasing the cumulative sales and then outputting. You need to output first:
data want;
set have;
output;
cumulative_sales + sales;
run;
Here, you're increasing the cumulative sales and then outputting. You need to output first:
data want;
set have;
output;
cumulative_sales + sales;
run;
And using "by week" is only necessary, if you have multiple observations for one week.
Hi,
options missing=0;
data want;
set have;
x=lag(sales);
cum_sales+x;
drop x;
run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.