全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3299 6
2014-03-21
在使用substr时候出现了一些问题,具体程序如下:
先定义一个字符变量X的长度t, t=length(X),
之后从这个X中判断后两位是否含有字符"co",用了
if substr(x, t-3, t)="co"
then Y=substr(X, 1, t-4);
else Y=x;
run;
实际上这个程序的作用是要把变量X中的后缀“co”去掉,让Y中不包含后缀co。
不知道出了什么问题,日志显示了无数这个提示:
NOTE: 函数“SUBSTR”的第三参数(行164 列12) 无效
但是实际去这个行检查的时候,发现它已经把后缀去掉了。
我彻底迷糊了。。。。
我用的是sas9.2, 同学之前用的9.3跑过类似程序没有问题,难道是版本的原因?不会吧。。。
还有除了这种办法之外有没有去掉后缀的更好的办法?
求教学。。。
跪谢。。。






二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-21 22:18:28
顶一下。。。
二维码

扫码加我 拉你入群

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

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

2014-3-22 00:12:54
日复一日12 发表于 2014-3-21 22:17
在使用substr时候出现了一些问题,具体程序如下:
先定义一个字符变量X的长度t, t=length(X),
之后从这 ...
if t>2 and substr(x, t-1,t)='co' then
y=substr(x,1,t-2);
else y=x;
二维码

扫码加我 拉你入群

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

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

2014-3-22 00:13:47
日复一日12 发表于 2014-3-21 22:17
在使用substr时候出现了一些问题,具体程序如下:
先定义一个字符变量X的长度t, t=length(X),
之后从这 ...
多半是因为长度不够,第三个参数是负数了。
二维码

扫码加我 拉你入群

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

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

2014-3-22 20:12:27
zw612003 发表于 2014-3-22 00:13
多半是因为长度不够,第三个参数是负数了。
恩 检查了一下t 长度有的是2 4 什么的,但是用了t>4之后还是会显示。。。啊啊啊
二维码

扫码加我 拉你入群

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

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

2014-3-23 12:12:32
substr(a,b,c)b是位置,c是长度,你从t-4开始,提取t个肯定a的长度不够啊,
substr(a,t-3,4)才对吧?当然你选长度大于4的它肯定会说长度不够,但是后面的字符肯定也全帮你消除了
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群