二手||连接两个字符串并覆盖其中一个变量。但是改写有时不会发生。
这是我的第一个代码:
data aa;
length a b $3;
a = 'FA';
b = '1';
a = a || b;
run;
a的值仍为“ FA”。
但是,如果我们将连接替换为:
$
b = a || b;
那么b的值为'FA1'。
谁能解释为什么会发生
答案 0 :(得分:1)
SAS字符变量存储值的尾部空格以填充变量长度。与串联运算符||
组合的值不会进行任何修改,因此对变量进行的有效操作(按值)是:
a = "FA " || "1 "
因此FA<space>1<space><space>
被塞入$ 3并被截断为FA<space>
原来的学校代码是
a = trim(left(a))||left(b);
查看CAT*
函数系列,以使用修整,剥离和定界将值连接在一起。例如:
a = cats(a,b);