Macros 具有宏变量名的substr函数
我尝试在SAS宏中使用substr函数,如下所示:Macros 具有宏变量名的substr函数,macros,sas,Macros,Sas,我尝试在SAS宏中使用substr函数,如下所示: %let hg=Name; data gg_; set sashelp.class; gh=%substr(&hg,1,3); run; 我也试过了 data gg_; set sashelp.class; gh=%sysfunc(substr(&hg,1,3)); run; 这里的Name是sashelp.class 但是我没有将Name变量的前三个字符输入到gh。 我该怎么做 您正在混合宏和数据步骤逻辑。 由于这是一
%let hg=Name;
data gg_;
set sashelp.class;
gh=%substr(&hg,1,3);
run;
我也试过了
data gg_;
set sashelp.class;
gh=%sysfunc(substr(&hg,1,3));
run;
这里的Name
是sashelp.class
但是我没有将Name
变量的前三个字符输入到gh
。
我该怎么做 您正在混合宏和数据步骤逻辑。 由于这是一个数据步骤,请使用SUBSTR()函数,而不是%SUBSTR。如果宏变量包含要提取的文本,请将其引用,否则将宏变量保留为未引用
gh=substr(&hg, 1, 3);
注意:编辑以反映注释。如果要在宏函数内创建数据集,则需要使用普通sas函数,因此只需使用
substr()
而不是%substr()
我想他的意思是宏变量包含SUBSTR()函数调用中使用的变量的名称。所以删除引号。
%let hg=Name;
data gg_;
set sashelp.class;
gh=substr(&hg,1,3);
run;