SAS 查找数据集中的顶级组合

SAS Find Top Combinations in Dataset

各位见鬼 --

我有一些销售数据,如下所示:

data have;
  input order_id item $;
cards;
1 A
1 B
2 A
2 C
3 B
4 A
4 B
;
run;

我想知道的是最受欢迎的商品组合是什么。例如在上面的例子中,有 2 个订单包含项目 A 和 B,1 个订单是 A 和 C,1 个订单是 B。输出不同组合以及所下订单数量的最佳方法是什么?

解决这个问题的方法有很多种,我不敢妄下定论说哪一种是最好的。这是您可以使用的相当简单的方法:

  1. 转置数据,使每个订单只有 1 行,每个产品都有一个指标变量。
  2. 将转置后的数据集输入 proc corr 以生成指示变量的相关矩阵,并寻找最强的相关性。

好像没有排列问题,你可以试试这个:

proc sort data=have;
by order_id item;
run;

data temp;
  set have;
  by order_id;
  retain comb;
  length comb ;
  comb=cats(comb,item);
  if last.order_id then do;
     output;
     call missing(comb);
  end;
run;

proc freq data=temp;
   table comb/norow nopercent nocol nocum;
run;