加载中…
个人资料
Miller_Wu
Miller_Wu
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,589
  • 关注人气:55
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]sas计算行数和列数

(2012-06-29 16:29:15)
标签:

转载

分类: SAS
原文地址:sas计算行数和列数作者:石石

sas计算数据集的行数、列数(观察数、变量个数)。

 

计算行数(观察数):

%let dsid=%sysfunc(open(sashelp.class,i));  
%let n=%sysfunc(attrn(&dsid,nobs));
%let rc=%sysfunc(close(&dsid));
%put obsnum=&n;

 

计算列数:将上面程序第二行的attrn的参数 nobs换成 nvars 即可。 

 

说明:

1、SysfuncSAS宏里功能最为强大的一个statement。这主要是通过它可以调用包括SASSCL在内的所有内置函数。

%SYSFUNC

在给宏变量赋值时,为了使用数据步中的函数(如:SUBSTR,SCAN,TRIM,LEFT等;一些数据步函数不能套用此宏函数,如:PUT,INPUT,LAG,DIF等)对值进行加工,需要用此宏函数将值扩起来。如:%SYSFUNC(数据步函数名(自变量)<,输出格式>)。例:%let currdate = %sysfunc(today(),worddate.);

注:在宏或宏语句中嵌套使用数据步函数时,必须在每个数据步函数外使用%SYSFUNC

 

2、这个宏使用了3SCL函数,openattrnclose

Open用来打开一个数据集并返回一个非零的描述符,参数I表示input(read only),详细的open mode见附录。Attrn函数用来获取相应数据集的指定数值类型的信息(attrc用于获取指定的字符型信息)NLOBS参数表示获取观察数。Close函数用于关闭数据集,这个是必须的,很重要。

 

sas attrn更多内容:

http://support.sas.com/documentation/cdl/en/sclref/59578/HTML/default/a000143464.htm

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有