SAS通过变量传递列名

时间:2012-08-21 11:03:51

标签: sas sas-macro pass-through

我需要通过变量传递列名。

%let dsn=a1234;
data temp;
   set &a1234;
   if age>=20;
run;

其中'a1234'是我想要使用的列名(存在于文件中);而不是字符串a1234。

我想要这样做的原因是在脚本顶部定义所有参数,使代码更加干净(在这种情况下)。

提前感谢您的任何反馈。

2 个答案:

答案 0 :(得分:3)

虽然您的问题是a1234是一列,但此答案会将其视为数据集名称,如代码示例中所使用的那样。

你很亲密;您创建了一个名为DSN的宏变量,其为a1234,但您尝试引用名为A1234的宏变量。换句话说,试试这个:

%let DSN=a1234;
data temp;
   set &DSN;
   if age>=20;
run;

重点强调。

答案 1 :(得分:1)

你在问这个吗?

%let dsn=a1234;
%Let column=Age;
data temp;
 set &a1234;
 if &column>=20;
run;
相关问题