Среднее количество строк на переменную в 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 freq или proc mean шаг, но до сих пор я получил только количество строк (~freq) на бизнес и не знаю, как добраться до своей цели.

Любая идея?

1 ответ

Решение

Вы можете использовать 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;

введите описание изображения здесь

Другие вопросы по тегам