SAS中每个变量的平均行数

Average number of rows per variable in SAS

我有以下数据集:

    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),不知道如何实现我的目标.

有什么想法吗?

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

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

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

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