创建宏变量方法

 我来答
天罗网17
2022-06-06 · TA获得超过6187个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:73万
展开全部

方法1:通过宏函数创建宏变量
%let dsid=%sysfunc(open(sashelp.class));
%let nvars=%sysfunc(attrn(&dsid,nvars));
%let nobs=%sysfunc(attrn(&dsid,nobs));
%let dsid=%sysfunc(close(&dsid));
%put &nvars.;
%put &nobs.;

方法2:通过SQL过程用变量值创建一个宏变量
proc sql noprint;
select distinct sex
into : list_a separated by ' '
from sashelp.class;
quit;
%put &list_a.;

方法3:通过SQL过程用变量值创建多个宏变量
proc sql noprint;
select nvar, nobs
into dictionary.tables
where libname='SASHELP' and memname='CLASS';
/ 注意SASHELP'和CLASS要大写 /
quit;
%put &nvar.;
%put &nobs.;

方法4:通过CONTENTS和SQL过程用变量名创建宏变量
proc contents data=sashelp.class out=con_class;
run;
proc sql noprint;
select name,put(count(name),5,-1)
into :clist separated by ' ',:charct
from con_class
where type=2;
quit;
%put &clist.;
%put &charct.;

方法5:通过SQL过程用变量名创建宏变量列表
proc sql noprint;
select name
into :clist1-:clist999
from dictionary.columns
where libname='SASHELP' and memname='CLASS';
quit;
%put &clist1.;
%put &clist2.;

方法6:通过SQL过程用变量值创建宏变量列表
proc sql noprint;
select count(distinct sex)
into :n
from sashelp.class;
select distinct sex
into :type1 - :type%left(&n)
from sashelp.class;
quit;
%put &n.;
%put &type1.;

方法7:通过DATA步接口子程序CALL SYMPUTX
data null ;
set sashelp.class nobs=obs;
call symputx('m1',obs);
call symput('m2',obs);
stop;
run;
%put &m1.;
%put &m2.;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式