计算组内未重复的客户并制作表格

时间:2015-11-17 13:17:52

标签: sas pivot-table

我在SAS中有以下数据,我想知道在特定时间内购买某种产品的客户数量。

如果客户在集团内重复,则无法计算。

Product customer interval
1       A         Morning
1       A         Morning
1       B         Afternoon
1       A         Evening
2       A         Afternoon
2       B         Morning
2       C         Afternoon

我想得到的是下表

           Morning     Afternoon   Evening   All
Product               Customer number
1           1             1          1         2
2           1             2          0         3

1 个答案:

答案 0 :(得分:1)

我相信您必须删除重复项才能生成此表。

这可以通过在proc类中使用nodupkey选项轻松完成:

proc sort data = have out = want nodupkey; 
by product customer interval; 
run; 

这是一种格式,可以通过在您想要的类别前面放置空格来正确排序区间类别:

proc format; 
    value $interval 
        "Morning" = "  Morning" 
        "Afternoon" = " Afternoon" 
        "Evening" = "Evening"; 
run; 

以下是制表声明:

proc tabulate data = want order = formatted; 
class product interval; 
tables product, interval = " " all / row = float misstext = "0" printmiss; 
keylabel n = " "; 
format interval $interval.; 
run; 

返回下表:

        Morning  Afternoon Evening  All 
Product     
  1        1         1       1       3
  2        1         2       0       3 

如果缺少值,这将更复杂。