将数字与字符连接起来

ath*_*esh 4 sas

data test;
name = 'abcdefgh';
age = 30;
res = name || age;
run;
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,变量res保持 - > abcdefgh 30

为什么数字变量age用空格填充然后与字符变量连接?

Joe*_*Joe 8

当数字和字符串联时,首先将数字转换为字符变量,然后将两个字符变量连接在一起.将数字变量转换为字符变量的默认格式为BEST12.(尽管根据数值变量的格式可能会有所不同). put(30,BEST12.)将产生'          30'哪个然后连接到字符变量.

要避免这种情况,要么使用strip作为Aaron注释,要么使用CATS(res=cats(name,age);)自动删除所有变量,或者自己放置数值变量(和PUT,如果你想使用-l,你可以强行左对齐)选项).

  • 我的意思是自己使用put函数 - 当你说'res = name || age;`时,SAS会自动为你执行此操作,但你可以轻松地执行`res = name || put(age,3.-l);`.有关详细信息,请参见http://www.sascommunity.org/wiki/Tips:Aligning_with_a_Put_Function. (3认同)
  • 根据你的目标,还有很多其他的'cats`函数变体,所以不要忘记检查`catt()`和`catx()`. (2认同)