如何在 PROC SQL 中使用 CATS 引用 SAS 变量?
How to reference SAS variable with CATS in PROC SQL?
非常基本的东西我似乎无法弄清楚。特定 table 中的列是前面带有下划线的数字,我在宏变量中存储了一个数字,我要使用的列的名称是带有下划线的数字。假设数字是 9,当我编写以下代码时,我得到一列,其中每个观察值都是 _9 而不是该数据集中的列 _9。
proc sql;
create table TM1 as
select cats("_",&rat_as_num) from default_data;
quit;
CATS return是一个字符串,不是变量名。所以变量名无关紧要,你会得到一个带有 _RAT_AS_NUM_VALUE.
的字符串
要 return 变量名,请改用 %SYSFUNC(),
data test;
_9 = 4;
run;
%let rat_as_num=9;
proc sql;
create table test2 as
select %sysfunc(cats(_, &rat_as_num)) from test;
quit;
proc print data=test2;
run;
根据@Richards 的评论,这也有效:
proc sql;
create table test2 as
select _&rat_as_nun from test;
quit;
非常基本的东西我似乎无法弄清楚。特定 table 中的列是前面带有下划线的数字,我在宏变量中存储了一个数字,我要使用的列的名称是带有下划线的数字。假设数字是 9,当我编写以下代码时,我得到一列,其中每个观察值都是 _9 而不是该数据集中的列 _9。
proc sql;
create table TM1 as
select cats("_",&rat_as_num) from default_data;
quit;
CATS return是一个字符串,不是变量名。所以变量名无关紧要,你会得到一个带有 _RAT_AS_NUM_VALUE.
的字符串要 return 变量名,请改用 %SYSFUNC(),
data test;
_9 = 4;
run;
%let rat_as_num=9;
proc sql;
create table test2 as
select %sysfunc(cats(_, &rat_as_num)) from test;
quit;
proc print data=test2;
run;
根据@Richards 的评论,这也有效:
proc sql;
create table test2 as
select _&rat_as_nun from test;
quit;