我想用proc sql实现以下功能,将一个数据中符合条件的相关变量列表赋值给一个变量。代码如下:
*** 代码1 ***;
%Macro Impute;
Proc Sql;
select name into :Len_var separated by "," from univariate_file;
Quit;
%put &Len_var;
%mend;
%Impute;
其中name是 数据集 univariate_file 中所有变量的名字. univariate_file 为对原数据集做proc content步骤后得出的数据。问题是当执行 %put &Len_var 时,即打印所有变量的列表,发现凡是变量名的长度超过12位时,变量名字都会自动被截断。但是SAS中可以允许的最大变量名长度应该是32位。原变量名并没有超过32位的限制。
一下位代码执行后的结果,标注部分为被截断的变量名
BRANCH1,BRANCH2,BRANCH3,BRANCH4,BRANCH5,BRANCH6,BusinessSeg1,BusinessSeg2,BusinessSeg3,Business
Seg4,BusinessSeg5,BusinessSeg6,ED_IND1,ED_IND2,ED_IND3,ED_IND4,ED_IND5,ED_IND6,HH_BILLPAY_S,HH_
BILLPAY_S,HH_BILLPAY_S,HH_BILLPAY_S,HH_BILLPAY_S,HH_BILLPAY_S,HH_CITIGOLD_,HH_CITIGOLD_,HH_CITI
GOLD_,HH_CITIGOLD_,HH_CITIGOLD_,HH_CITIGOLD_,HH_DIR_DEP_I,HH_DIR_DEP_I,HH_DIR_DEP_I,HH_DIR_DEP_
I,HH_DIR_DEP_I,HH_DIR_DEP_I,Regname1,Regname2,Regname3,Regname4,Regname5,Regname6
盼赐教!万分感谢!