Stata 从变量名中删除中间字符
我的变量名以下划线(Stata 从变量名中删除中间字符,stata,Stata,我的变量名以下划线(\uu)结尾,后跟年份代码: clear set obs 1 foreach var in age_58 age_64 age_75 age_184 age_93 age99 { generate `var' = rnormal() } list +----------------------------------------------------------------------+ | age_58 age_64
\uu
)结尾,后跟年份代码:
clear
set obs 1
foreach var in age_58 age_64 age_75 age_184 age_93 age99 {
generate `var' = rnormal()
}
list
+----------------------------------------------------------------------+
| age_58 age_64 age_75 age_184 age_93 age99 |
|----------------------------------------------------------------------|
1. | .1162236 -.8781271 1.199268 -1.475732 .9077238 -.0858719 |
+----------------------------------------------------------------------+
我想将它们重命名为:
age58 age64 age75 age184 age93 age99
我知道我可以通过一次重命名一个变量来实现这一点,如下所示:
rename age_58 age58
rename age_64 age64
rename age_75 age75
rename age_184 age184
rename age_93 age93
如何一次从所有变量名中删除下划线?您可以使用宏扩展函数
subinstr
循环变量:
foreach var of varlist * {
local newname : subinstr local var "_" "", all
if "`newname'" != "`var'" {
rename `var' `newname'
}
}
在Stata 13和更高版本中,可以使用内置命令
rename
在一行中完成此操作
只需指定相关规则,其中可以包括通配符:
rename *_# *#
list
+----------------------------------------------------------------------+
| age58 age64 age75 age184 age93 age99 |
|----------------------------------------------------------------------|
1. | .1162236 -.8781271 1.199268 -1.475732 .9077238 -.0858719 |
+----------------------------------------------------------------------+
键入help rename group
了解各种可用说明符的详细信息。对于Stata 8 up,社区贡献的命令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年的论文,见此