Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:左祥太 (武汉纺织大学)
邮箱:Shutter_Z@outlook.com
目录
encodefrom
命令可以利用一个存储在外部文件夹中的值和标签对变量进行编码。将原始值与对应数据值的映射关系以虚拟变量形式存储在当前数据文件中,有助于用户在不同的数据集之间对齐代码。比如,当我们同时拥有很多公司的基本信息,但需要将其与股票代码进行一一对应,除了通过 merge
合并,我们也可以通过 encodefrom
来进行处理,后文将对比两者的不同。
*命令安装
ssc install encodefrom, replace
*-或
cnssc install encodefrom, replace
encodefrom
命令的基本格式如下:
*命令语法
encodefrom varname using filename, filetype(string) raw(string) clean(string) label(string) [options]
varname
:表示当前工作表中的某一变量名称;filename
:表示需要使用的文件名称;filetype
:用于指定文件的类型,可选参数有 excel、delimited (csv格式)、Stata;raw
:指定文件当中与 varname 内容一致的变量 (区别于 merge
,变量名可不同);clean
:表示指定文件中与 varname 相对应的数字编码;label
:该选项应当与 varname 保持一致。
假设我们拥有两份数据,一份是 sample_data_encodefrom (样本数据),另一份是 codes_encodefrom (编码表) ,数据基本情况如下:
. cnssc install lxhuse, replace
. cnssc install lxhget, replace
. lxhuse sample_data_encodefrom.dta, clear
. list in 1/5, noobs
+------------------------------------------------------+
| fips state age pop popm popf year |
|------------------------------------------------------|
| 1 AL 10 61743 31570 30173 1989 |
| 2 AK 10 9521 4945 4576 1989 |
| 4 AZ 10 53062 27152 25910 1989 |
| 5 AR 10 35826 18498 17328 1989 |
| 6 CA 10 404054 207592 196462 1989 |
+------------------------------------------------------+
. lxhget codes_encodefrom.xlsx, replace
. import excel using codes_encodefrom.xlsx, firstrow clear
. list in 1/5, noobs
+----------------------------------+
| FIPS_c~e name abbrev~n |
|----------------------------------|
| 1 Alabama AL |
| 2 Alaska AK |
| 4 Arizona AZ |
| 5 Arkansas AR |
| 6 California CA |
+----------------------------------+
我们需要做的就是将 sample_data_encodefrom 中变量 state 下的简称变成 codes_encodefrom 文件中的全程,并且将 FIPS_code 映射入这个变量。
我们先来观察 sample_data_encodefrom 中的数据样式:
在已经了解数据的基础内容之后,便可以着手通过 encodefrom
实现转换,操作方式如下:
. lxhuse sample_data_encodefrom.dta, clear
. encodefrom state using "./codes_encodefrom.xlsx", filetype(excel) ///
> sheet(state) raw(abbreviation) clean(FIPS_code) label(name) ///
> label_name(state) allow_missing //allow_missing 表示允许存在缺失值
state | Freq. Percent Cum.
---------------------+-----------------------------------
Alabama | 10 1.96 1.96
Alaska | 10 1.96 3.92
Arizona | 10 1.96 5.88
Arkansas | 10 1.96 7.84
...省略
West Virginia | 10 1.96 96.08
Wisconsin | 10 1.96 98.04
Wyoming | 10 1.96 100.00
---------------------+-----------------------------------
Total | 510 100.00
此时再次观察 sample_data_encodefrom 中的数据样式:
不难发现,仅仅通过一条命令便实现了变量的合并与映射关系转换。
思路大致如下,我们需要先通过州的简称合并州的全称,然后为州的全称重复编码。
. import excel using codes_encodefrom.xlsx, firstrow clear
. rename abbreviation state
. save codes_encodefrom.dta, replace
. lxhuse sample_data_encodefrom.dta, clear
. merge m:1 state using codes_encodefrom
. *对合并成功的 name 变量进行编码
. *recode FIPS_code (0 = United States) (1 = Alabama) ...... // 此处省略 n 对
可以发现虽然合并之后也可以直接通过 FIPS_code 来进行固定效应的控制,但是在回归后寻找对应关系时还是较为繁琐的,可以说 encodefrom
命令的出现极大地简化了我们的工作。
Note:产生如下推文列表的 Stata 命令为:
lianxh 合并 编码, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
和songbl
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh