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

sas计算行数和列数

(2011-05-11 14:37:32)
标签:

sas

数据集

行数

变量数

sysfunc

教育

分类: 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

阅读 收藏 喜欢 打印举报/Report
  

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

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

新浪公司 版权所有