12-06-2016 01:54 AM
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.
12-06-2016 01:58 AM
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.
12-06-2016 03:56 AM
12-06-2016 04:24 AM
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:
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;
The details are up to you.