我想要计算SAS
中dataset
中的记录数。有一个函数可以用简单的方式创建这个东西?我使用R
ed获取此信息有length()
函数。 Morover我需要记录的数量来计算一些百分比,所以我不需要这个值在表中,但在一个值可以用于其他data step
。我该如何解决?如何获取SAS中数据集的记录数
在此先感谢
我想要计算SAS
中dataset
中的记录数。有一个函数可以用简单的方式创建这个东西?我使用R
ed获取此信息有length()
函数。 Morover我需要记录的数量来计算一些百分比,所以我不需要这个值在表中,但在一个值可以用于其他data step
。我该如何解决?如何获取SAS中数据集的记录数
在此先感谢
这里是另一个解决方案,使用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”开头的所有数据集的大小。
假设这是您所创建的,而不是修改或附加到一个基本的SAS表,最好的方法是使用数据集中持有的元数据(尝试的次数是保存在一个名为“nobs”的元数据中),而不读取数据集自身并将其放入宏变量中。您可以通过以下方式做到这一点:
Data _null_;
i=1;
If i = 0 then set DATASETTOCOUNT nobs= mycount;
Call symput('mycount', mycount);
Run;
%put &mycount.;
现在,您将有一个包含在数据集中的行数,你可以使用& mycount的其他数据的步骤调用一个宏变量。
您是否在Google中搜索了“SAS数据集中的记录数”? – Longfish
如果您使用它来计算百分比,那么您可能希望在数据集中使用此值。 – superfluous