Удалить средний символ из имен переменных
У меня есть имена переменных, заканчивающиеся подчеркиванием, за которым следует код года.
Как удалить "_" из всех имен переменных одновременно?
Например, у меня есть 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'
}
}