楼主: 陈汉若
7990 2

[问答] substr函数中关于提取字符的问题 [推广有奖]

  • 1关注
  • 2粉丝

高中生

12%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
183 点
帖子
16
精华
0
在线时间
19 小时
注册时间
2013-3-1
最后登录
2013-6-4

楼主
陈汉若 发表于 2013-3-23 19:23:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data _null_;
x=1234;
y=substr(x,1,2);
y1=substr(x,9,2);
z=substr(left(x),1,2);
put x= y= y1= z=;
run;
其中第四行“y1=substr(x,9,2)”,如果遇到“start”的数值比变量的字符数要多的话应该怎么做?比如这里变量的字符数只有4个,而“start”却是9.
日志是:
NOTE: 数字值已转换为字符值,位置:(行:列)。
      289:10   290:11   291:15
x=1234 y=  y1=12 z=12
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.03 秒
      CPU 时间         0.03 秒
为什么y没有结果?
谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:SUBSTR subs SUB R函数 UBS

沙发
Eternal0601 发表于 2013-3-23 19:57:36
这里x为数值型变量,而substr是处理字符型变量的函数,这里SAS会将X自动转化为字符型变量,这时候会在1234前面添加空格的,x之前默认的informat为12.,故转化之后会在前面添加8个空格,然后就出现你上面的结果。这个其实跟下面这段code差不多的,希望对你有帮助。
data a;
x=1234;
y1=substr(x,9,2);
y=put(x,12.) ;
y2=substr(x,9,2);
run;

藤椅
陈汉若 发表于 2013-3-23 20:51:54
Eternal0601 发表于 2013-3-23 19:57
这里x为数值型变量,而substr是处理字符型变量的函数,这里SAS会将X自动转化为字符型变量,这时候会在1234前 ...
谢谢你!这一个对我帮助很大 今天网上找资料一直没找到解答 很感谢你

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

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