SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 646|回复: 4
打印 上一主题 下一主题

请教各位大大

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-7-28 23:38:38 | 只看该作者

请教各位大大

现在有以下字符
003012
003015
003020
003022
003027
003029
003035
003039
003050
现在要得到
600012
600015
600020
600022
600027
600029
600035
600039
600050
即替换规则是将前三个003替换为600
谢谢各位大大
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-7-29 12:25:08 | 只看该作者

Re: 请教各位大大

将变量拆开,前边3位改成600即可,后面的不要动。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-7-29 17:26:07 | 只看该作者

Re: 请教各位大大

tranwrd
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-7-29 19:40:47 | 只看该作者

Re: 请教各位大大

[code:1uf0y327]
data a;
        input a $6.;
        cards;
003012
003015
003020
003022
003027
003029
003035
003039
003050
;
run;

方法一:
data result;
        set a;
        if a=:'003' then substr(a,1,3)='600';
run;

方法二:

data result;
        set a;
        if index(a,'003')=1 then substr(a,1,3)='600';
run;

方法三:
data result;
        set a;
        if a=:'003' then a=kupdate(a,1,3,'600');
run;


[/code:1uf0y327]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-7-29 22:09:55 | 只看该作者

Re: 请教各位大大

谢谢byes
昨晚后来翻了翻sas书已经搞定了:)
if substr(zqdm,1,3)='609'
then substr(zqdm,1,3)='020';
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 00:06 , Processed in 0.085573 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表