SAS中每个变量的平均行数

时间:2017-10-09 17:11:48

标签: sas proc

我有以下数据集:

    data test;
    input business_ID $;
    datalines;
   'busi1'
   'busi1'
   'busi1'
   'busi2'
   'busi3'
   'busi3'
   ;
    run;

proc freq data = test ;
        table business_ID;
run;

我想要每个企业的平均线数,即计算观察总数并将其除以不同业务的数量。 在我的例子中:6个观察,3个企业 - > 6/2 =每个企业3行。

我正在考虑使用proc freqproc mean步骤,但到目前为止,我只获得了每个商家的行数(~freq),并且不知道如何达到我的目标。< / p>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用PROC FREQ获取计数,然后在输出上运行PROC MEANS。

proc freq data=test ;
  tables business_id / noprint out=counts ;
run;
proc means data=counts;
  var count;
run;

enter image description here

或者您可以使用PROC SQL代码直接计算它们。

proc sql ;
  select count(*)/count(distinct business_id) as mean_count
  from test
  ;
quit;

enter image description here