2016-04-22 824 views
1

我想要计算SASdataset中的记录数。有一个函数可以用简单的方式创建这个东西?我使用R ed获取此信息有length()函数。 Morover我需要记录的数量来计算一些百分比,所以我不需要这个值在表中,但在一个值可以用于其他data step。我该如何解决?如何获取SAS中数据集的记录数

在此先感谢

+0

您是否在Google中搜索了“SAS数据集中的记录数”? – Longfish

+0

如果您使用它来计算百分比,那么您可能希望在数据集中使用此值。 – superfluous

回答

1

这里是另一个解决方案,使用SAS字典,

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

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

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

上面的代码将会给你在临时/工作库中名称以“a”开头的所有数据集的大小。

0

假设这是您所创建的,而不是修改或附加到一个基本的SAS表,最好的方法是使用数据集中持有的元数据(尝试的次数是保存在一个名为“nobs”的元数据中),而不读取数据集自身并将其放入宏变量中。您可以通过以下方式做到这一点:

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

%put &mycount.; 

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

相关问题