Stata: систематически заменять символы в строковой переменной
У меня есть наблюдения, которые перечисляют уголовные коды как строковые переменные, но не в нужном мне формате. Используя Stata 12, я хочу заменить некоторые подстроки в строковой переменной. Например, мне нужно изменить все экземпляры CC
в 18
, VC
в 75
, а также PC
в 35
, Вот так:
Orginal Variable
CC547A1 | VC549F| PC5297
New Variable
18547A1 | 75549F | 355297
Персонажи, которые мне нужно изменить, всегда в начале. Некоторые оригинальные переменные не нужно менять.
Я пытался выяснить это с помощью substring
команда, но я просто не мог правильно адаптировать код.
1 ответ
Решение
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 |
+---------+
NB предыдущий поток Как найти и заменить часть строковой переменной в Stata?