%sysfunc函数是在宏语句中,执行sas或者用户自定义函数
%sysfunc(function(argument<,format>)
%let dsid=%sysfunc(open(&data_in,i));
open函数用来打开一个数据集并返回一个非零的描述符,参数i表示只读
close函数用于关闭数据集
Attrn
用来获取相应数据集的指定数值类型的信息
Attrc
用来获取数据集的指定字符型信息
用attrn计算行数和列数
%let dsid=%sysfunc(open(sashelp.class,i));
%let nrow=%sysfunc(attrn(%dsid,nobs)); /*行数*/
%let ncol=%sysfunc(attrn(%dsid,nvars); /*列数*/
%let rc=%sysfunc(close(%dsid));
Varnum
返回变量所在的位置,即变量在数据集中的第j列,值即为多少
Fectchobs
读取指定的第i条观测,若成功则返回0,如果读完所有观测,则返回-1
Getvarc
需要和fetchobs配合使用,fetchobs控制读取值所在的观测数
getvarc读取第i条观测的第j个变量的值(i,j)
%let dsid=%sysfunc(open(sashelp.class,i));
%let varnume=%sysfunc(varnum(&dsid,age));
%macro ds(dain=,var=);
data aa;
%let dsid=%sysfunc(open(&dain.));
%if &dsid gt 0 %then %do;
%let nobs=%sysfunc(attrn(&dsid,nobs));
%do i=1 %to &nobs;
%let rc=%sysfunc(fetchobs(&dsid,&i));
%let varvalue=%sysfunc(varnum(&dsid,&var));
%let charvalue=%sysfunc(getvarc(&dsid,&varvalue));
%put "&dsid";
%put "&nobs";
%put "&rc";
%put "&varvalue";
%put "&charvalue";
%put *********************;
%end;
%let rc=%sysfunc(close(&dsid));
%end;
run;
%mend ds;
%ds(dain=sashelp.class,var=sex);
sas的sysfunc varnum函数
最新推荐文章于 2025-08-08 09:18:51 发布
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Stable-Diffusion-3.5
图片生成
Stable-Diffusion
Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率
2351





