如何使用proc sql统计SAS数据集中的观测值?h

如何使用proc sql统计SAS数据集中的观测值?h,sas,Sas,我需要更新以下代码来完成两件事: 1) sourceh.group2有一个名为Type的变量,该变量将数据集分为四个组。我需要分别计算每个组的观察次数。我如何更新我的程序来做到这一点? 2) 我想创建一个新的数据集,该数据集包含观察数。下面的程序在日志页中给了我数字,但我想创建一个新的数据集。我如何编程 如果有一种比proc-sql更有效的方法也非常有用,那就是一个大数据集 谢谢大家! proc sql noprint; select count(*) into :nobs from

我需要更新以下代码来完成两件事: 1)
sourceh.group2
有一个名为Type的变量,该变量将数据集分为四个组。我需要分别计算每个组的观察次数。我如何更新我的程序来做到这一点? 2) 我想创建一个新的数据集,该数据集包含观察数。下面的程序在日志页中给了我数字,但我想创建一个新的数据集。我如何编程

如果有一种比
proc-sql
更有效的方法也非常有用,那就是一个大数据集

谢谢大家!

proc sql noprint;
   select count(*) into :nobs
   from sourceh.group2; 
quit;
%put Obs in data set: &nobs;

对于第一个问题,您只需要创建一个表,该表包含类型、具有该类型的观察计数,并按类型对其进行分组。对于你的第二个问题,你做同样的事情,但没有分组(因为你只想要观察的总数):


对于第一个问题,您只需要创建一个表,该表包含类型、具有该类型的观察计数,并按类型对其进行分组。对于你的第二个问题,你做同样的事情,但没有分组(因为你只想要观察的总数):


您可能需要使用
PROC SUMMARY
。它可以让您在一次运行中按类型、上限、两者或两者都不进行计数

 proc summary data=have ;
   class type cap ;
   output out=counts ;
 run;

变量_TYPE_u将告诉您哪些类变量对表有贡献。对于两个类变量,您将有四个类型为的值。00将具有总计数,1将具有按上限级别的计数,2('10'b)将具有按类型级别的计数,3('11'b)将具有按类型和上限级别的值。

您可能需要使用
过程摘要
。它可以让您在一次运行中按类型、上限、两者或两者都不进行计数

 proc summary data=have ;
   class type cap ;
   output out=counts ;
 run;

变量_TYPE_u将告诉您哪些类变量对表有贡献。对于两个类变量,您将有四个类型为的值。00将有总计数,1将有按上限级别的计数,2('10'b)将有按类型级别的计数,3('11'b)将有按类型和上限级别的值。

谢谢!你的第一个建议很有效,这正是我需要的。实际上,除了type之外,还有另一个名为cap的变量(它将数据集分成三个部分)。我想按类型和cap一起计算观察值,即3 cap*4 type=12组。我如何更新您的第一个代码来实现这一点?再次感谢。我想我的编辑解决了这个问题-如果没有,请告诉我。谢谢!你的第一个建议很有效,这正是我需要的。实际上,除了type之外,还有另一个名为cap的变量(它将数据集分成三个部分)。我想按类型和cap一起计算观察值,即3 cap*4 type=12组。我如何更新您的第一个代码来实现这一点?再次感谢。我想我的编辑解决了这个问题-如果没有,请告诉我。