全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3327 5
2011-09-03
在宏中编辑两个宏变量串接时偶尔 会出现两个变量值之间有较长的空格,通常用compress可以处理。

比如如下情形下,“可能”会出现best         wishes!的结果;
复制代码


想请教的是:1.为什么会出现空格?
                     2.在有些情形下(sas GE中,b为数值型时出现这一较长空格),用compress无法消去空格,怎么办?或有没有其它处理方法?



二维码

扫码加我 拉你入群

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

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

全部回复
2011-9-4 22:37:03

求教!
二维码

扫码加我 拉你入群

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

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

2011-9-5 10:04:08
试试 %trim(&b) 如果你的b为数值型的话
二维码

扫码加我 拉你入群

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

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

2011-9-5 21:55:31
ntsean 发表于 2011-9-5 10:04
试试 %trim(&b) 如果你的b为数值型的话
多谢!已解决..
用的
%sysfunc(compress(&a._&b.));


就是还不明白为什么会产生空格...其实用简单情形测试时 是没空格的~~
二维码

扫码加我 拉你入群

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

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

2011-9-6 08:45:52
chai_prime 发表于 2011-9-5 21:55
多谢!已解决..
用的
%sysfunc(compress(&a._&b.));
宏变量是没有固定长度的,所以如果用%let对宏变量赋值,然后再连接不同宏变量的话不会产生多余空格。

多余空格一般出现在数据步中产生的宏变量,比如用call symput() 将某数值型变量的值存入宏变量中。

data _null_;
   x=1;
   call symput("mvar1",x);
   call symputx("mvar2",x);
run;

%put mvar1: &mvar1;
%put mvar2: &mvar2;
二维码

扫码加我 拉你入群

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

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

2011-9-8 23:21:31
pobel 发表于 2011-9-6 08:45
宏变量是没有固定长度的,所以如果用%let对宏变量赋值,然后再连接不同宏变量的话不会产生多余空格。

...
I got it!!!
like all is well~

3ku !
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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