This is a part in my macro:
PROC MEANS DATA=&DSN NOPRINT NWAY;
CLASS TIME_PERIOD QNUM aggregate BRAND;
VAR FLAG;
WEIGHT XMKT_WEIGHT;
OUTPUT OUT=&DSN._WTDMEANS SUMWGT=BASE_WTD SUM=CNT_WTD MEAN=PER_WTD ;
RUN;
For example, I have Markets=1,2,3,4,......60 and for example. aggregate=1002 combines markets (5,6, 13,14).
So in the above proc means, I want WEIGHT = WEIGHT (my weight variable ) if aggregate=1,2,....60 but I want it to use XMKT_WEIGHT if it's a combination of markets viz aggregate=1002. How can I tell proc means which weight to use based on a condition.
If it helps, aggregate=1 is market=1, aggregate=2 is market=2......upto aggregate=60 is market=60...and then aggregate=1000 is market=1,2,3, aggregate=1001 is market=2, 3, 9, 10 etc which I have in a table:
AGGREGATE MARKET
1 1
2 2
1002 5
1002 6
1002 13 .......... ETC
Thanks!
Create a new weight variable in a data step instead that has the weights it would need to use. I don't believe there's a way to implement that in proc means, besides running different procs.
Transpose your data or otherwise rearange it such that you have a BY variable that represents the change in weight variables.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.