SAS通过变量传递列名
我需要通过变量传递列名SAS通过变量传递列名,sas,sas-macro,pass-through,Sas,Sas Macro,Pass Through,我需要通过变量传递列名 %let dsn=a1234; data temp; set &a1234; if age>=20; run; 其中“a1234”是我要使用的列名(存在于文件中);而不是字符串a1234 我想这样做的原因是在脚本的顶部定义了所有参数,这使得代码更加干净(在本例中) 提前感谢您的反馈。您是在询问这样做吗 %let dsn=a1234; %Let column=Age; data temp; set &a1234; if &co
%let dsn=a1234;
data temp;
set &a1234;
if age>=20;
run;
其中“a1234”是我要使用的列名(存在于文件中);而不是字符串a1234
我想这样做的原因是在脚本的顶部定义了所有参数,这使得代码更加干净(在本例中)
提前感谢您的反馈。您是在询问这样做吗
%let dsn=a1234;
%Let column=Age;
data temp;
set &a1234;
if &column>=20;
run;
你是在问做这件事吗
%let dsn=a1234;
%Let column=Age;
data temp;
set &a1234;
if &column>=20;
run;
尽管您的问题说
a1234
是一列,但这个答案将其视为数据集名称,正如您的代码示例中所使用的那样
你非常接近;您创建了一个名为DSN
的宏变量,其值为a1234,但尝试引用名为a1234
的宏变量。换句话说,请尝试以下方法:
%let DSN=a1234;
data temp;
set &DSN;
if age>=20;
run;
为强调而大写 尽管您的问题说
a1234
是一列,但这个答案将其视为数据集名称,正如您的代码示例中所使用的那样
你非常接近;您创建了一个名为DSN
的宏变量,其值为a1234,但尝试引用名为a1234
的宏变量。换句话说,请尝试以下方法:
%let DSN=a1234;
data temp;
set &DSN;
if age>=20;
run;
为强调而大写