BookmarkSubscribeRSS Feed
Xinxin
Obsidian | Level 7

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!

2 REPLIES 2
Reeza
Super User

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.

data_null__
Jade | Level 19

Transpose your data or otherwise rearange it such that you have a BY variable that represents the change in weight variables.

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is Bayesian Analysis?

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1058 views
  • 0 likes
  • 3 in conversation