重要的事情说三遍,重要的数据留一个

2017-03-23 王清 爬虫俱乐部 爬虫俱乐部

哈喽,诸君安。爬虫俱乐部第五届Stata编程技术培训报名已进入倒计时,进入倒计时,进入倒计时,重要的事情重复说,那重要的数据重复了怎么办呢?


问题



在进行数据合并处理之后,通常会发现数据中会出现重复的数据,而这些重复数据是没有什么用处的,需要我们删除这些重复的值,所以在数据处理时,删除重复值是很重要。


方法



处理重复值我们会用到duplicates命令。下面是duplicates的几个常用命令:


duplicates report [varlist] [if] [in]  //报告某个变量出现的次数

duplicateslist  [varlist] [if] [in] [,options]  //列出重复的变量

duplicates tag [varlist] [if] [in] , generate(newvar)  //生成一个新变量,当某一行数据为重复值时,生成的新变量值为1,否则为0

duplicates drop[if] [in]  //删掉重复值,同时保留下每一组重复值中的第一行数据


栗子




如果某两行数据完全相同时,也就是真正意义上的重复值,这时候也是最简单的处理方法。


我们现有一个下图所示的数据,可以看出,第三行和第四行、第六行和第七行是完全重复的,所以我们需要把重复行删除。


当然,如果我们的数据量特别大,不能一下子看出是否有重复值时,可以借助duplicates reportduplicates listduplicates tag命令。

duplicates report

duplicates list

duplicates tag, generate(dup)


接下来就是要删除重复变量了,也就是要用到duplicates drop命令。


这样重复值就成功被删除了。


上个例子中,是整行数据都重复的情况,但我们经常会遇到不是整行数据都重复的情况,比如下图,idyear是重复的,但是age变量并没有重复。


duplicates reportduplicates listduplicates tag命令之后显示并没有重复值。


但我们还是希望同一个id,同一year,只保留一行,如果我们继续像上面那样,用duplicates drop id year,就会报错。


duplicates drop id year //报错,因为不是完全重复


这是因为stata认为这样删除会让你丢失关于age的信息,所以它不允许。那如果age这个变量恰好是你不需要用的变量,这时候你可以加上force选项,这样idyear重复的两行就被删除了。


duplicates drop id year,force 


以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。

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

文字编辑:强宇曦

技术总编:刘贝贝



往期推文推荐:

1.中国高校财经、管理与综合类期刊灌水排行榜

2.关于RTF你不知道的命令

3.关于RTF你不知道的命令之番外篇

4.免费事件研究,一片片从邮局寄来

5.免费的股价同步性,一片片从邮局寄来

6.Stata叫你回家听音乐了!

7.一言不合就用stata写邮件(Outlook/Foxmail)

8.听说你想知道怎么用stata画地图?

9.I have a Stata, I have a python

10.I have a Stata, I have a Python之二——pdf转word




关于我们

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

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

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号