substr()函数是字符处理函数,其输入参数应该是字符型变量。当前例子中,给定的输入参数y是一个数值型变量。因此SAS自动的进行了变量的类型转换,将y变成了字符型变量,默认有12个字节的长度,数字右对齐,前面用空格补齐,也就是'□□□□10600001'。因此substr(y,7,6)等同于substr('□□□□10600001',7,6),得到的结果即为“600001”。
补充,若确实要对数值型的变量做截断处理,可以考虑使用cats()函数去除补齐的空格。例如:substr(cats(y),7,6)