统计SAS中不同字段的数量

统计SAS中不同字段的数量,sas,summary,Sas,Summary,我在SAS(使用WPS Workbench)中有一个如下所示的表 ID Band_1 Band_2 Band_2 ... Band_160 1 Y Y N Y 2 N N N N 3 Y N N Y 4 N Y Y Y .. 200 Y N N Y 我想将该表总结如

我在SAS(使用WPS Workbench)中有一个如下所示的表

ID   Band_1  Band_2 Band_2 ... Band_160
1    Y       Y      N          Y
2    N       N      N          N
3    Y       N      N          Y
4    N       Y      Y          Y
..
200  Y       N      N          Y
我想将该表总结如下:对于每个波段,我需要一个Y和N值的计数,并将该表转置(可选)

因此,左下由每个带组成,顶部是Y计数和N计数。或者,我不介意带在顶部。

数组处理是获取汇总计数的几种方法之一

data have;
  do id = 1 to 200;
    array band(160) $1;
    do _n_ = 1 to dim(band);
      band(_n_) = substr('YN', 1+(ranuni(123)<0.4));
    end;
    output;
  end;
run;

data want1(keep=column yes_n no_n);
  set have end=last;
  array band(160);
  array Yes(160) _temporary_ (160*0);
  array No(160) _temporary_ (160*0);

  * accumulate counts;
  do _n_ = 1 to dim(band);
    if band(_n_) = 'Y' then Yes(_n_)+1; else
    if band(_n_) = 'N' then No(_n_)+1;
  end;

  * emit counts;
  if last then
    do _n_ = 1 to dim(band);
      column = vname(band(_n_));
      yes_n = Yes(_n_);
      no_n = No(_n_);
      output;
    end;
run;
数据已经存在;
do id=1至200;
阵列波段(160)$1;
do _n_=1至变暗(波段);
频带(_n_)=substr('YN',1+)(拉努尼(123)