我想计算dataset
中SAS
的记录数。有一个功能以简单的方式制作这个东西吗?我使用R
ed来获取此信息,其中包含length()
函数。 Morover我需要记录的数量来计算一些感知,所以我需要这个值不在表中,而是在一个可用于其他data step
的值中。我该如何解决?
提前致谢
答案 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在其他数据步骤中调用这些行。