Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:范唯 (中山大学)
邮箱:fanw9@mail2.sysu.edu.cn
目录
autofill
命令直译为自动填充,可利用 Stata 数据中已有的数值来填充缺失值。它应用范围广泛,适用于 Stata 中所有类型的缺失值。此外,该命令还可以按组别对缺失值进行补全,这对分组处理数据缺失值有极大助益。
作者信息:
Version 1.0: October 1st, 2021
Author
Xia P.S.
University of Chinese Academy of Sciences
Email: xia_ps@yeah.net
命令安装:
ssc install autofill, replace
命令语法:
autofill varlist, forward|backward [groupby(varname)]
其中,varlist
对应数值中含有缺失值的变量。对于 forward|backward
:
forward
,程序将使用现有的数值来替换它们之前的缺失值。backward
,程序会使用现有的值来替换它们之后的缺失值。groupby(varname)
选择一个变量,按照其连续相同的观察值进行分组。在每一个分组中独立执行 autofill
命令。
为更好地让读者理解 autofill
的用法,本部分将结合以下实例,从创建数据集——输入命令——输出结果——结果说明四个方面,对如何使用 autofill
命令进行详细讲述。
创建数据集:
clear all
input str2 L N X Y
a 1 . .
a 2 7 .
b 3 . 4
c 1 6 .
c 2 . 5
a 1 . .
a 2 5 .
a 3 . 9
b 1 3 .
b 2 . 1
end
encode L, gen(I)
drop L
order I
forward
:向前填充缺失值演示
. autofill X Y, forward
. list, noobs clean
I N X Y
a 1 7 4
a 2 7 4
b 3 6 4
c 1 6 5
c 2 5 5
a 1 5 9
a 2 5 9
a 3 3 9
b 1 3 1
b 2 . 1
backward
:向后填充缺失值演示
. autofill X Y, backward
. list, noobs clean
I N X Y
a 1 . .
a 2 7 .
b 3 7 4
c 1 6 4
c 2 6 5
a 1 6 5
a 2 5 5
a 3 5 9
b 1 3 9
b 2 3 1
forward
+ groupby
:分组向前填充
. autofill X Y, forward groupby(I)
. list, noobs clean
I N X Y
a 1 7 4
a 2 7 .
b 3 . 4
c 1 6 5
c 2 . 5
a 1 5 9
a 2 5 9
a 3 . 9
b 1 3 1
b 2 . 1
backward
+ groupby
:分组向后填充
. autofill X Y, backward groupby(I)
. list, noobs clean
I N X Y
a 1 . .
a 2 7 .
b 3 . 4
c 1 6 .
c 2 6 5
a 1 . .
a 2 5 5
a 3 5 9
b 1 3 .
b 2 3 1
autofill
和 carryforward
命令均可以对数据集中的缺失值进行补全,但两个命令在处理数据缺失值的细节上具有很大差异。该部分将对这两个命令进行仔细区分,以帮助使用者根据数据处理需要选择合适的命令进行操作。
carryforward varlist [if exp] [in range], {gen(newvarlist1) | replace}
[cfindic(newvarlist2) back carryalong(varlist2) strict nonotes dynamic_condition(dyncond) extmiss]
carryforward
命令把非缺失值从一个观察值向后推进,用前一个值来填补缺失值。因此,如果把一连串的缺失值看作是整个序列中的一个缺口,这个操作将用缺口之前出现的值来填补缺口。
clear all
input x
12
4
.
.
.
3
.
7
.
.
end
. carryforward x, gen(y)
. list, noobs clean
x y
12 12
4 4
. 4
. 4
. 4
3 3
. 3
7 7
. 7
. 7
是否可以生成新变量:
autofill |
carryforward |
---|---|
否 | 是 |
说明:autofill
是在原数据上填充缺失值,即根据命令要求覆盖原缺失值,不会生成新的变量,可能导致部分信息遗失。若想保留原有信息,需要先执行 gen y=x
,对原有变量进行备份,再执行 autofill
指令操作。carryforward
命令更加灵活:
carryforward x, replace
指令,输出结果为在原数据上填充缺失值,覆盖原有缺失值;carryforward x, gen(y)
指令,输出结果为生成新变量 y,y 为对变量 x 中的缺失值进行填充,x 变量中数值不变。是否可以向后填充缺失值:
autofill |
carryforward |
---|---|
是 | 是 |
说明:autofill
和 carryforward
命令均可以实现向后填充缺失值。
autofill
命令的实现:autofill x, backward
carryforward
命令的实现:carryforward x, replace|gen(y)
是否可以向前填充缺失值:
autofill |
carryforward |
---|---|
是 | 否 |
说明:autofill
比 carryforward
更加灵活,可以通过输入 autofill x, forward
指令,使得缺失值被其后的第一个非缺失值填充。carryforward
命令不可以选择缺失值以后的非缺失值填充。
是否可以分组填充缺失值:
autofill |
carryforward |
---|---|
是 | 否 |
说明:autofill
命令可以通过 groupby(x)
选项,对变量 x 中连续相同的变量进行分组,并在组内较为独立的执行 autofill
命令。但需注意的是,groupby
选项并不会改变原数据的排序,这一点和某些编程语言中的 groupby
指令有所不同。carryforward
命令不可以分组独立执行补充缺失值操作。
是否可以部分填充缺失值:
autofill |
carryforward |
---|---|
否 | 是 |
说明:autofill
命令不可以部分填充缺失值,若有部分填充缺失值的需求,需要将数据手动拆分为“需填充缺失值部分”和“不填充缺失值部分”,再对“需填充缺失值部分”单独进行 autofill
操作。carryforward
命令在“部分填充缺失值”要求上更为灵活,只需要在 carryforward
命令后添加 [if exp] [in range]
选项,即可部分填充缺失值。
autofill
命令可利用已有的数值来填充缺失值。它应用范围广泛,适用于 Stata 中所有类型的缺失值。此外,该命令还可以按组别对缺失值进行补全,对分组处理数据缺失值有极大助益。
虽然 autofill
命令提供了一种快速填充缺失值的方法,但该命令并未提供缺失值的科学算法,以缺失值前/后的非缺失值对其进行填充很多时候在数据处理时并不是一个合适的选择。另外,通过对比 autofill
命令和 carryforward
命令,我们发现 autofill
命令在填充缺失值,尤其是“部分填充缺失值”方面仍有很大的升级改进空间。
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