如何补齐数据

2016-11-29 强宇曦 爬虫俱乐部 爬虫俱乐部

缺钙,可以晒太阳

缺失数据,就用fillin

——萧伯因安兹基·硕德


 

我们在进行数据处理时,经常会遇到数据缺失的现象,那么我们如何补齐缺失的数据呢?fillin可以帮大家解决这个问题!


 

 一、Help文档说明




我们可以help fillin来了解一下fillin命令。

1、Description

从help文档我们了解到fillin可以补充缺失的数据从而使得数据完整。

此外,使用fillin命令后数据集会生成一个新的变量:_fillin。如果数据是使用fillin命令补齐的,则_fillin为1;如果数据是原本存在的,则_fillin为0。

 

2、Syntax

fillin命令的语法非常简单,只需要在fillin后面直接加变量名即可。但是要注意的是变量需要至少两个及以上,否则会报错:

“too few variables specified”

另外,变量不能是长字符串滴!


 

二、栗子说明



  

现在我们通过Help文档的栗子来真正感受一下fillin命令的魅力。

webuse fillin1,clear

list     //导入数据后我们先来瞅一眼数据长什么样子!

从 list的结果可知,目前数据集里包含有20-24岁的白人女性,25-29岁的白人男性,30-34岁的黑人女性。但是在实际研究中,如果使用该数据集 研究问题,那么结论一定会产生偏差,因为我们的抽样不合理。我们需要的是各年龄段、不同肤色、不同性别的样本数据,也就是说我们的样本数据应该有12个才 合理。fillin命令就可以很容易的将缺失数据补齐。

fillin sex race age_gr~p

list,sepby(sex)

结果如下:

此时,我们就拥有了完整的数据集,并且注意,数据集中生成了一个新的变量_fillin,如果数据新补齐的,则_fillin为1;数据原本存在,_fillin为0。

 

 

三、 双生花——tsfill



 
1、 语法说明

tsfill命令的作用也是补齐数据,但不同于fillin,tsfill只能补齐时间变量的数据。

语法也很简单,但是在使用该命令前必须对数据tsset或xtset,指明数据中的时间变量或指明数据中的时间变量与截面变量。

 此外,full选项只能用于面板数据。对于面板数据,tsfill默认情况下是根据每个截面的时间变量的跨度填充截面的数据;如果指定full,则针对整个面板数据的时间变量的跨度进行填充。
 

 2、 栗子说明

 (1) 填充时间序列数据

webuse tsfillxmpl,clear

list

tsset mdate  //指明时间变量

由上图可见,时间变量存在缺失,时间间隔为一个月。接着使用tsfill命令进行填充:

tsfill

list

时间变量mdate已经被填充完毕,从1995年7月到1996年3月,时间间隔仍为一个月。

(1) 填充面板数据

webuse tsfillxmpl2, clear

list

xtset edlevel year  //指明截面变量和时间变量

由上图可见,时间变量存在缺失,时间间隔为一个月。接着使用tsfill命令进行填充:

tsfill

list

时间变量mdate已经被填充完毕,从1995年7月到1996年3月,时间间隔仍为一个月。

(1) 填充面板数据

webuse tsfillxmpl2, clear

list

xtset edlevel year  //指明截面变量和时间变量

数据填充:

tsfill

list

tsfill 填充数据只针对每个截面的时间变量跨度进行了填充。比如edlevel为2,时间跨度是1989到1992,时间间隔为一年,存在数据缺失,填充之后时间 变量数据就是从1989-1992,补足了1991年,但是在edlevel为1中的1988年并不会填充到edlevel为2的时间变量中。

指定full情况下:

tsfill, full

list 

指定full之后,tsfill将会针对面板数据的整体时间跨度进行数据填充。我们的时间跨度是从1988-1992,填充之后每个截面的时间变量都是1988-1992。

 而这种情况也可以使用fullin命令来实现:

webuse tsfillxmpl2, clear

fullin edlevel year

list

以上就是关于数据填充的全部内容了。

另外……

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~



以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~,点赞打赏随您心意,么么哒~


编辑by梅洁瓷傲    

那些让你具有高手气场的黑科技:

1.天路——chinafin与cntrade命令

2.分时数据,从此唾手可得

3.有了这个命令,以后还怕重复?

4.esttab功能挖掘:“Yes”or“No”

5.用“套路”处理数据

6.厉害了,我stata哥

7.爬虫俱乐部周末送大礼——chinagcode提取中文地址经纬度

8.据说这样数据替换比较快,你试一下,然后……

9.众里寻她千百度,synth命令来帮助!

10.I have a Stata, I have a python

11.用subinfile修改文件,滚蛋吧,繁琐的命令君!

12.删繁就简三秋叶,subinfile似剪刀

关于我们

微信公众号爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:xueyuan19920310@163.com

投稿要求:

1)必须原创,禁止抄袭;

2)必须准确,详细,有例子,有截图;

注意事项:

1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。

3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部~~


 


 







微信扫一扫
关注该公众号