Удалить средний символ из имен переменных

У меня есть имена переменных, заканчивающиеся подчеркиванием, за которым следует код года.

Как удалить "_" из всех имен переменных одновременно?

Например, у меня есть age_58 age_64 age_75 age_84 age_93 и я хочу переименовать их в age58 age64 и так далее.

Я использую Stata 11.

3 ответа

В Stata 13 и более поздних версиях это можно сделать в одну строку с помощью встроенной команды rename,

Нужно просто указать соответствующие правила, которые могут включать символы подстановки:

очистить набор obs 1

foreach var в age_58 age_64 age_75 ​​age_184 age_93 age99 {генерировать список 'var' = rnormal()
} +----------------------------------------------------------------------+
     |    age_58      age_64      age_75 ​​age_184     age_93       age99 |
     |----------------------------------------------------------------------|
  1. |  .1162236   -.8781271    1.199268   -1.475732   .9077238   -.0858719 |
     +----------------------------------------------------------------------+переименовать age_* age*[1] список + ------------------ -------------------------------------------------- - + | Возраст58 Возраст64 Возраст75 Возраст184 Возраст93 Возраст99 | | ------------------------------------------------- --------------------- | 1. |.1162236 -.8781271 1.199268 -1.475732.9077238 -.0858719 | + ------------------------------------------------- --------------------- +

Тип help rename group для деталей о различных доступных спецификаторах.

Для Stata 11 и даже Stata 8, команда, внесенная сообществом renvars предлагает решение:

renvars age_*, subst(_)

Для документации и загрузки, см.

. search renvars, historical

Search of official help files, FAQs, Examples, SJs, and STBs

SJ-5-4  dm88_1  . . . . . . . . . . . . . . . . .  Software update for renvars
        (help renvars if installed) . . . . . . . . .  N. J. Cox and J. Weesie
        Q4/05   SJ 5(4):607
        trimend() option added and help file updated

STB-60  dm88  . . . . . . . .  Renaming variables, multiply and systematically
        (help renvars if installed) . . . . . . . . .  N. J. Cox and J. Weesie
        3/01    pp.4--6; STB Reprints Vol 10, pp.41--44
        renames variables by changing prefixes, postfixes, substrings,
        or as specified by a user supplied rule

Для 2001 бумаги, см. Это. PDF

// create some example data
clear 
set obs 10
foreach var in age_58 age_64 age_75 age_84 age_93 age99 {
    gen `var' = rnormal()
}

// remove the _
foreach var of varlist * {
    local newname : subinstr local var "_" "", all
    if "`newname'" != "`var'" {
        rename `var' `newname'
    }
}
Другие вопросы по тегам