温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
作者: 冷萱(西南财经大学)
邮箱: lx@smail.swufe.edu.cn
目录
数据清理是实证研究过程中最为繁琐的一步,不起眼的变量命名工作都够折腾许久。我们经常需要对 Stata 数据集中的变量进行重命名,一种简单的方式是使用 rename
进行重命名。一般而言,rename
可以满足我们重命名变量的需求,具体用法可以 help rename
。
但是,数据清理过程中总会遇到千奇百怪的问题,比如我们想把变量的 name 替换为变量的 label,我们想对某些变量 name 批量的加上一些前缀,我们也想对变量中 name 中特定字符进行替换,那么 renvarlab
这个命令能满足我们上述的所有需求。
安装 renvarlab
:
ssc install renvarlab, replace
在成功安装后,输入 help renvarlab
可以查看具体使用语法:
Syntax
renvarlab [varlist] \ newvarlist [ , display test label ]
renvarlab [varlist] , transformation_option [ display test symbol(str) label]
renvarlab [varlist] , label [ display test ]
where transformation_option is one of
upper lower
prefix(str) postfix(str) (synonym suffix(str))
presub(str1 str2) postsub(str1 str2)
subst(str1 str2)
predrop(#) postdrop(#)
trim(#)
trimend(#)
map(string exp)
上述语法中,以下这条与 rename
功能一致,可以直接修改变量名称。需要注意的是,rename
通过 ()
将修改前后的变量名分别括起来,而 renvarlab
通过\
将修改前后的变量名分开。
renvarlab [varlist] \ newvarlist [ , display test label ]
以下这条使用方法是 renvarlab
特有的更改变量名称。通过在,
后面添加 label 选项,则可以直接将变量的名称替换为变量的标签。
renvarlab [varlist] , label [ display test ]
本文的重点是介绍 renvarlab
命令的选项,希望通过阅读本文后,抛弃rename
,使用 renvarlab
。
上一节简要概括了 labbel 选项的功能及使用方法,label 选择的功能主要是将变量名称替换为变量标签,可以批量操作。如果有单个或多个变量名称需要更改,则在,
前输入需要更换的变量名即可,如果对所有变量进行更换,则可以默认不输入任何变量名称。具体用法如下:
sysuse auto,clear
renvarlab make , lab
renvarlab price mpg rep78 , lab
renvarlab , lab
上述命令分别实现将 make 替换为对应标签;将 price mpg rep78 替换为对应标签;将所有变量名称替换为对应标签。
这一选项的用法与 rename
一致,将变量名转换为大写或小写。一般而言,lower
选项更为常见,将变量名由大写全部转换为小写字母。具体用法如下:
sysuse auto,clear
renvarlab make , u
renvarlab MAKE , l
上述选项中,u
和 l
分别是upper
与 lower
的简写。
这两个选项分别是在变量名称前和变量名称后添加特定的字符,str
可以替换为符合变量命名规则的字符(即变量名不能数字 开头)。这一选项的好处在于,实证分析中可能存在多类别的变量名,比如个体层面,家庭层面和城市层面。为了便于区分,我们可以在个体层面的变量名前面统一添加前缀 ind_
,在家庭层面变量名前统一添加前缀 fam_
,在城市层面变量名前统一添加前缀 city_
。具体用法如下:
sysuse auto,clear
renvarlab make price mpg , prefix(ind_)
renvarlab rep78 headroom trunk , prefix(fam_)
renvarlab weight length turn displacement gear_ratio foreign , prefix(city_)
subst(str1 str2)
选项的含义是将变量名中的 str1
替换为 str2
。比如我们想把名称为 log_income,log_consumption 和 log_wage 的变量名替换为 ln_income,ln_consumption 和 ln_wage,则可以进行如下操作:
renvarlab log_income log_consumption log_wage,subs(log ln)
与 subst(str1 str2)
选项可能同时出现的是 presub(str1 str2)
和 postsub(str1 str2)
选项。
subst(str1 str2)
是指将变量名中所有的 str1
均替换为 str2
。
而 presub(str1 str2)
是指将变量名第一次出现的 str1
替换为 str2
。
postsub(str1 str2)
是指将变量名最后一次出现的 str1
替换为 str2
。
str2
可以为空,即删除 str1
。
predrop(#)
与 postdrop(#)
选项含义是将变量名中的前(后)几个字符删除。比如我们想把变量名 update_age,update_male 改变为 age 和 male,则可以使用 predrop(#)
选项,当然也可以使用上一节提到的 subst(str1 str2)
。两个选项使用的具体命令如下:
renvarlab update_age update_male,predrop(7)
renvarlab update_age update_male,subst(update_ )
与 predrop(#)
对应的是 postdrop(#)
。其用法一致,后者表示删除变量名最后几位字符。
trim(#)
与 trimend(#)
选项含义是仅保留变量名的前(后) #
个字符。这一选项在实践中使用可能较少,因为我们难以保证每个变量名称字符一样。当然某些情况也可以使用,比如我们想把 v1_ndein v2_eds3 v3sd v4_dcldifc v5_nc 替换为 v1 v2 v3 v4 v5,则可以使用 trim(#)
选项,具体用法如下:
renvarlab v1_ndein v2_eds3 v3sd v4_dcldifc v5_nc ,trim(2)
ssc install renvarlab,replace
sysuse auto,clear
renvarlab make , lab
renvarlab price mpg rep78 , lab
renvarlab , lab
sysuse auto,clear
renvarlab make , u
renvarlab MAKE , l
sysuse auto,clear
renvarlab make price mpg , prefix(ind_)
renvarlab rep78 headroom trunk , prefix(fam_)
renvarlab weight length turn displacement gear_ratio foreign , prefix(city_)
*以下命令缺少原始数据,无法成功运行
renvarlab log_income log_consumption log_wage,subs(log ln)
renvarlab update_age update_male,predrop(7)
renvarlab update_age update_male,subst(update_ )
renvarlab v1_ndein v2_eds3 v3sd v4_dcldifc v5_nc ,trim(2)
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh