如何获取SAS中数据集的记录数

时间:2016-04-22 08:09:23

标签: sas dataset

我想计算datasetSAS的记录数。有一个功能以简单的方式制作这个东西吗?我使用R ed来获取此信息,其中包含length()函数。 Morover我需要记录的数量来计算一些感知,所以我需要这个值不在表中,而是在一个可用于其他data step的值中。我该如何解决?

提前致谢

2 个答案:

答案 0 :(得分:2)

这是使用SAS词典的另一种解决方案

proc sql;
    select nobs into: num_obs
    from dictionary.tables
    where libname = "WORK" and memname = "A"
    ;
quit;

通过修改上面的代码很容易获得许多数据集的大小,

proc sql;
    create table test as
    select memname, nobs
    from dictionary.tables
    where libname = "WORK" and memname like "A%"
    ;
quit;
data _null_;
    set test;
    call symput(memname, nobs);
run;

上面的代码将为您提供临时/工作库中名称以“a”开头的所有数据集的大小。

答案 1 :(得分:0)

假设这是您创建的基本SAS表,而不是修改或追加,最好的方法是使用数据集中保存的元数据(尝试次数保存在一个名为的元数据中) “nobs”),没有通过数据集读取它自己并将其放在宏变量中。您可以通过以下方式执行此操作:

Data _null_;
 i=1;
 If i = 0 then set DATASETTOCOUNT nobs= mycount;
Call symput('mycount', mycount);
Run;

%put &mycount.;

现在,您将拥有一个宏变量,其中包含数据集中的行数,您可以使用& mycount在其他数据步骤中调用这些行。