z*******e 发帖数: 32 | 1 请教SAS大虾,下面code里面的!应该怎么理解啊?
data test;
phonenumber = 3125551212;
code = '('!!substr(phonenumber, 1,3)!!')';
run; |
h******e 发帖数: 1791 | |
z*******e 发帖数: 32 | 3 但是我敲到SAS里面,确实可以得到答案 ( 3),还是不解
【在 h******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 就是||,但显然程序有错。
|
b*******t 发帖数: 390 | 4 你对那一点有疑问?
我认为这个代码的最后的结果应该是:
code='('312')'
【在 z*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 请教SAS大虾,下面code里面的!应该怎么理解啊? : data test; : phonenumber = 3125551212; : code = '('!!substr(phonenumber, 1,3)!!')'; : run;
|
b*******t 发帖数: 390 | 5 ? 用!!完全可以啊。
【在 h******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 就是||,但显然程序有错。
|
h******e 发帖数: 1791 | 6 这样能理解吗?phonenumber是numeric variable,所以得不到“312”。
code = '(' || substr(phonenumber, 1,3) || ')';
【在 z*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 但是我敲到SAS里面,确实可以得到答案 ( 3),还是不解
|
z*******e 发帖数: 32 | 7 substr(phonenumnber,1,3)因为right-align的关系,得到的结果是 3
然后左边加一个(,右边加一个),所以是 ( 3)。对吗?
谢谢大侠
【在 h******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这样能理解吗?phonenumber是numeric variable,所以得不到“312”。 : code = '(' || substr(phonenumber, 1,3) || ')';
|
m***c 发帖数: 118 | 8 correct. use substrn() function to handle numeric value.
【在 h******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这样能理解吗?phonenumber是numeric variable,所以得不到“312”。 : code = '(' || substr(phonenumber, 1,3) || ')';
|
z*******e 发帖数: 32 | 9 请问,那么是不是!和|可以互换?
任何情况下都一样?
【在 m***c 的大作中提到】![](/moin_static193/solenoid/img/up.png) : correct. use substrn() function to handle numeric value.
|
h******e 发帖数: 1791 | 10 对。根本原因是phonenumber的format和informat是12.,所以sas在做自动转换时给了
两个leading blank(2个leading blank+10位=12)。在下一步substr从1起取3,所以
得到了 3。
【在 z*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : substr(phonenumnber,1,3)因为right-align的关系,得到的结果是 3 : 然后左边加一个(,右边加一个),所以是 ( 3)。对吗? : 谢谢大侠
|
h******e 发帖数: 1791 | 11 这个不知道,我在sas里试了一下,发现可以。
【在 z*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 请问,那么是不是!和|可以互换? : 任何情况下都一样?
|
h******e 发帖数: 1791 | 12 不应该让sas做自动numeric-character转换。
【在 b*******t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : ? 用!!完全可以啊。
|
s******8 发帖数: 102 | 13 SAS把数字自动转换成字符,with format of best12.但数字值是右对齐的,所以左侧
自动填了两个空格使得整个字符串长度达到12. |