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;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.