全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7273 4
2016-01-06
我想用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

盼赐教!万分感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-1-7 16:57:42
我试了HH_BILLPAY_S,没有被截断。下面是log

626 %Macro Impute;
627  Proc Sql;
628  select name into :Len_var separated by "," from b;
629  Quit;
630  %put &Len_var;
631
632  %mend;
633  %Impute;
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒


HH_BILLPAY_S
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-1-9 21:02:14
对的!刚发现我搞错了!!
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-1-9 21:02:49
孤单的我们 发表于 2016-1-7 16:57
我试了HH_BILLPAY_S,没有被截断。下面是log

626 %Macro Impute;
对的!刚发现我搞错了!!
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-11-9 21:08:21
请问同学是哪里错了呀,自己也出现了这个问题
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群