计算SAS中不同字段的数量

时间:2017-10-19 09:03:49

标签: 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

我想按如下方式对表进行总结:对于每个Band,我想要计算Y和N值的数量,并将表转置(可选)。

因此,左下方将包含每个波段,并且顶部将是Y计数和N计数。或者乐队可以跨越顶部,我不介意。

1 个答案:

答案 0 :(得分:1)

数组处理是获取摘要计数的一种(多种)方法。

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;

同样的&#39;想要&#39;数据可以从其他使用

的技术中获得
  • 哈希对象
  • 转置/报告
  • 转置/制表
  • Transpose / Freq