楼主: BraveMadMan
3657 17

[问答] 如何根据数据库的变量数产生一个宏变量 [推广有奖]

11
李金玲 发表于 2011-1-16 11:46:37
The most simple way:
data a;
a=1;
b=2;
c=3;
d=4;
run;
option mprint;
%macro nvar(Dsn= /*Data set name */);
data null;
if exist("&Dsn") then do;
Dsid = open("&Dsn","i");
Nvar = attrn(Dsid,"NVARS");
end;
else Nvar=0;
call symput("want",repeat("C",nvar-1));
rc = close(Dsid);
run;
%put want= &want;
%mend nvar;
%nvar(dsn=a);
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
BraveMadMan + 1 + 1 + 1 多谢精彩程序

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

李经纶

12
李金玲 发表于 2011-1-16 11:48:39
the most simple:
data a;
a=1;
b=2;
c=3;
d=4;
run;
option mprint;
%macro nvar(Dsn= /*Data set name */);
data null;
if exist("&Dsn") then do;
Dsid = open("&Dsn","i");
Nvar = attrn(Dsid,"NVARS");
end;
else Nvar=0;
call symput("want",repeat("C",nvar-1));
rc = close(Dsid);
run;
%put want= &want;
%mend nvar;
%nvar(dsn=a);
李经纶

13
李金玲 发表于 2011-1-16 12:01:44
data a;
a=1;
b=2;
c=3;
d=4;
run;
option mprint;
%macro nvar(Dsn= /*Data set name */);
data null;
if exist("&Dsn") then do;
Dsid = open("&Dsn","i");
Nvar = attrn(Dsid,"NVARS");
end;
else Nvar=0;
call symput("want",repeat("C",nvar-1));
rc = close(Dsid);
run;
%put want= &want;
%mend nvar;
%nvar(dsn=a);
李经纶

14
李金玲 发表于 2011-1-16 12:02:06
data a;
a=1;
b=2;
c=3;
d=4;
run;
option mprint;
%macro nvar(Dsn= /*Data set name */);
data null;
if exist("&Dsn") then do;
Dsid = open("&Dsn","i");
Nvar = attrn(Dsid,"NVARS");
end;
else Nvar=0;
call symput("want",repeat("C",nvar-1));
rc = close(Dsid);
run;
%put want= &want;
%mend nvar;
%nvar(dsn=a);
李经纶

15
李金玲 发表于 2011-1-16 12:02:27
data a;
a=1;
b=2;
c=3;
d=4;
run;
option mprint;
%macro nvar(Dsn= /*Data set name */);
data null;
if exist("&Dsn") then do;
Dsid = open("&Dsn","i");
Nvar = attrn(Dsid,"NVARS");
end;
else Nvar=0;
call symput("want",repeat("C",nvar-1));
rc = close(Dsid);
run;
%put want= &want;
%mend nvar;
%nvar(dsn=a);
李经纶

16
李金玲 发表于 2011-1-16 12:02:46
data a;
a=1;
b=2;
c=3;
d=4;
run;
option mprint;
%macro nvar(Dsn= /*Data set name */);
data null;
if exist("&Dsn") then do;
Dsid = open("&Dsn","i");
Nvar = attrn(Dsid,"NVARS");
end;
else Nvar=0;
call symput("want",repeat("C",nvar-1));
rc = close(Dsid);
run;
%put want= &want;
%mend nvar;
%nvar(dsn=a);
李经纶

17
李金玲 发表于 2011-1-16 12:03:24
1# BraveMadMan


data a;
a=1;
b=2;
c=3;
d=4;
run;
option mprint;
%macro nvar(Dsn= /*Data set name */);
data null;
if exist("&Dsn") then do;
Dsid = open("&Dsn","i");
Nvar = attrn(Dsid,"NVARS");
end;
else Nvar=0;
call symput("want",repeat("C",nvar-1));
rc = close(Dsid);
run;
%put want= &want;
%mend nvar;
%nvar(dsn=a);
李经纶

18
baoaibaobao 发表于 2011-1-16 12:33:17
楼上在刷屏啊!!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 20:55