[英]Outputting the top 10% in SAS
如何将SAS中输出的观测值的数量限制为前10%? 我知道obs =函数,但是我还无法弄清楚如何使obs =导致百分比。
提前致谢!
据我所知,没有直接的方法可以完成您要问的事情。 不过,您可以轻松编写一个宏来执行此操作。
假设您要查看PROC PRINT中前10%的记录,则可以执行以下操作。
%macro top10pct(lib=WORK,dataset=);
proc sql noprint;
select max(ceil(0.1*nlobs)) into :_nobs
from dictionary.tables
where upcase(libname)=upcase("&lib.") and upcase(memname)=upcase("&dataset.");
quit;
proc print data=&lib..&dataset.(obs=&_nobs.);
run;
%mend top10pct;
dictionary.tables
具有所有可用的PROC CONTENTS信息,包括逻辑观察数(NLOBS)。 如果您一直在对数据集执行操作(例如删除SQL中的观测值),则不能100%保证此数字的准确性,但是对于SAS数据集,这几乎总是准确的或足够接近的。 对于RDBMS表,这可能是不确定的或不正确的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.