程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SAS:变量计数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决SAS:变量计数?

开发过程中遇到SAS:变量计数的问题如何解决?下面主要结合日常开发的经验,给出你关于SAS:变量计数的解决方法建议,希望对你解决SAS:变量计数有所启发或帮助;

我想计算数据集的各个部分。

这是我的数据集:

YEAR ㅣ FIRMCode ㅣ FIRmname
2000 ㅣ 10 ㅣ 1
2001 ㅣ 11 ㅣ 1
.
.
2020 ㅣ 17 ㅣ 1
2000 ㅣ 11 ㅣ 2
.
.
2020 ㅣ 16 ㅣ 2

我想计算每年的公司代码类型的数量,而不虑公司名称。公司代码从 10 到 20。所以我的输出看起来像:

YEAR ㅣ FIRMCode(10) ㅣ FIRMCode(11) ... ㅣ FIRMCode(20)
2000 ㅣ #firms with code10 ㅣ #firms with code11
.
.
2020 ㅣ #firms with code10 ㅣ #firms(11)

在此先感谢您。

解决方法

一种方法是使用 SQL 计算组内的 count (disTinct FIRmname),然后使用 Proc REPORTProc TABULATE 将不同计数显示为列。

您的数据似乎无法模拟一家公司在一年内可以拥有多个代码的场景;如果是这样,则不需要 disTinct

例:

计算一年内有代码的公司数量,保持分类数据结构。在广泛的布局演示中展示计数。另外,展示一个从二级类别到宽数据集的数据转换(一般不推荐)

data have;
  call streaminit (20210425);

  do firmname = 'a','b','c','d';
    do year = 2000 to 2010;
      code = 10 + rand('Integer',5);
      output;
    end;
  end;
run;

proc sql;
  create table counts as
  SELEct year,code,count(disTinct firmname) as firm_ucount
  from have
  group by year,code
  order by year,code;

proc tabulate data=counts;
  class year code;
  var firm_ucount;
  table year,code * firm_ucount='' * mean='' * f=4.;
run;

proc report data=counts;
  columns year firm_ucount,code;
  define year / group;
  define code / '' across;
  define firm_ucount / '#firms with code';
run;

proc transpose data=counts out=want prefix=n_code_;
  by year;
  id code;
  var firm_ucount;
run;

TABULATE,列维计数类

SAS:变量计数

REPORT,计数变量 ACROSS

SAS:变量计数

TRANSPOSE,作为列名一部分的代码

SAS:变量计数

大佬总结

以上是大佬教程为你收集整理的SAS:变量计数全部内容,希望文章能够帮你解决SAS:变量计数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。