我观察到将犯罪代码作为字符串变量列出,但不是以我需要的格式。使用Stata 12,我想替换字符串变量中的一些子串。例如,我需要将CC的所有实例更改为18,将VC更改为75,将PC更改为35。如下所示:
Orginal Variable
CC547A1 | VC549F| PC5297
New Variable
18547A1 | 75549F | 355297我需要更改的字符总是在开头。一些原始变量不需要更改。
我尝试使用substring命令来解决这个问题,但是我就是不能正确地调整代码。
发布于 2014-10-23 08:39:56
在这里,substr()函数(不是substring();不是命令)没有它的兄弟subinstr()那么有用。文档在同一位置:从help functions开始。
. clear
. input str7 myvar
myvar
1. CC547A1
2. VC549F
3. PC5297
4. end
. replace myvar = subinstr(myvar, "CC", "18", .)
(1 real change made)
. replace myvar = subinstr(myvar, "VC", "75", .)
(1 real change made)
. replace myvar = subinstr(myvar, "PC", "35", .)
(1 real change made)
. list
+---------+
| myvar |
|---------|
1. | 18547A1 |
2. | 75549F |
3. | 355297 |
+---------+注意:上一个线程How do I find and replace a part of a string variable in Stata?
编辑问题的含义似乎是要替换的字符串只出现一次。如果这是假的,并且您只希望替换第一个出现的项,那么建议执行类似于subinstr(myvar, "CC", "18", 1)的操作,其中最后一个参数1规定了要进行的(最大)替换次数。在其他问题中,这个细节可能是至关重要的。
https://stackoverflow.com/questions/26518974
复制相似问题