楼主: chai_prime
3371 5

[问答] 请教符串连接时出现空格的问题 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

67%

还不是VIP/贵宾

-

威望
0
论坛币
184 个
通用积分
197.8952
学术水平
10 点
热心指数
9 点
信用等级
8 点
经验
1477 点
帖子
153
精华
0
在线时间
188 小时
注册时间
2011-8-1
最后登录
2025-3-1

楼主
chai_prime 发表于 2011-9-3 22:30:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在宏中编辑两个宏变量串接时偶尔 会出现两个变量值之间有较长的空格,通常用compress可以处理。

比如如下情形下,“可能”会出现best         wishes!的结果;
  1. %let a = "best";
  2. %let b = "wishes!"
  3. %let ab = &a._&b.;
  4. %put &ab.;
复制代码


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



二维码

扫码加我 拉你入群

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

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

关键词:compress wishes Press wish comp

沙发
chai_prime 发表于 2011-9-4 22:37:03

求教!

藤椅
ntsean 发表于 2011-9-5 10:04:08
试试 %trim(&b) 如果你的b为数值型的话

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


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

报纸
pobel 在职认证  发表于 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;
和谐拯救危机

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

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

3ku !

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 17:02