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?

Другие вопросы по тегам