I have the following dataset: who's inputs are CustomerID, SaleDate,Variety, Quantity
240W 02-07-2008 Ginger 120
240W 02-07-2008 Protea 180
356W 02-08-2008 Heliconia 60
356W 02-08-2008 Anthurium 300
188R 02-11-2008 Ginger 24
188R 02-11-2008 Anthurium 24
240W 02-12-2008 Heliconia 48
240W 02-12-2008 Protea 48
356W 02-12-2008 Ginger 240
I have to Write a procedure to compute the average quantity of sale. I then have to Write a DATA step to put the average quantity in a macro variable AVG, I cant use the %let statement. Run the program below.
proc chart data = flowersales;
vbar variety / type=mean sumvar=quantity ref=&avg; run;
How would I do this? I can't figure it out, please help me understand how it would work.
The steps are outlined.
First create the procedure to calculate the average - PROC MEANS
Secomd, create a macro variable in a data step - CALL SYMPUTX()
Given the phrasing here, I suspect this is a homework assignment so I won't write the code for you.
I would suggest a slightly different strategy. Since you need a DATA step to create a macro variable, let the DATA step compute the average value as well. Here is the idea:
data _null_;
set have (keep=quantity) end=nomore;
where quantity > .;
tot_quantity + quantity;
if nomore then do;
* Divide TOT_QUANTITY by number of observations;
* Transfer the result to a macro variable AVG;
end;
run;
The details are up to you.
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.