查看原文
其他

Stata处理重复值:duplicates

爬虫俱乐部 Stata and Python数据分析 2022-12-31

本文作者:郭培军,河南大学经济学院

本文编辑:喻淑敏

技术总编:李婷婷

Stata&Python云端课程来啦!

      为了平衡团队运营成本,维系公众号的运营,也与国内动辄数千元的Stata课程缩短差距,我们的网课不得不上调价格,我们决定于2022年4月1日起调价,Python课程的价格调整为399.9元Stata基础课程调为399.9元Stata进阶课程调整到399.9元。大家可以告知一下身边想要购买的小伙伴,欲购从速哦,对报名有任何疑问欢迎在公众号后台和腾讯课堂留言~我们在这篇推文提供了每门课程的课程二维码,大家有需要的话可以直接扫描二维码查看课程详情并进行购买哦~


导读

我们使用Stata进行分析处理数据时,经常需要对数据中的重复值进行处理,如果采用人工检索的方式,不仅速度慢,而且极容易出错,效率低下。那么有没有什么办法能解决这个问题呢?其实Stata官方已经帮我们解决好了,今天就为大家介绍一下duplicates的一系列关于重复值的命令。

01 

duplicates · 命令介绍


duplicates命令为Stata自带的命令,无需额外的安装,具体的命令和语法有以下几种:

报告重复值

duplicates report [varlist] [if] [in]

列出各组重复值的其中一个例子

duplicates example [varlist] [if] [in] [, options]

列出所有的重复值

duplicates list [varlist] [if] [in] [, options]

标记重复值

duplicates tag [varlist] [if] [in] , generate(newvar)

删除重复值

duplicates drop [if] [in]

duplicates drop [varlist] [if] [in] , force

其中 varlist  为变量名,添加varlist可以指定变量;if 和in可以指定条件范围;newvar  为一个新的变量名,不能与数据中已存在的重复。

常用的一些option有:compress 可以压缩列宽;string(#)可以将字符串变量的报告结果保留#个字符,默认值为10;separator(#)可以定义每几行显示一条分隔线,默认值为5;mean[(varlist)]、sum[(varlist)]、N[(varlist)]  分别可以报告(指定)变量值的平均数、和以及个数等等。
大家可以在help文件中查看所有的选项。


02 

duplicates · 实例操作


在进行duplicates具体操作前,我们需要先导入数据,这里使用Stata中的auto数据进行演示:
sysuse autokeep make price mpg rep78 foreignexpand 2 in 1/2 //由于原数据不含重复值,我们将前两行数据复制到数据表最后,保证存在重复观测值,以便我们演示duplicates命令

2.1  duplicates report--报告重复值

当我们导入数据后,就可以输入duplicates report来获得数据重复值的信息:

duplicates report
得到的结果如下:

结果显示数据中有4行观测值存在重复,并且Surplus显示有两个是多余的,这与我们构建的重复观测值数量一致。

2.2  duplicates example--列出各组重复值的例子

查看过重复值信息之后,我们就可以看看具体是哪些观测值重复了,输入:
duplicates example

显示结果如下:

要注意的是,这里只返回各组重复值的其中一个例子。

我们还可以指定变量列出重复值:

duplicates example mpg duplicates example mpg rep78

显示结果如下:

2.3  duplicates list--列出所有的重复值

我们也可以显示所有的重复值,只需要输入:
duplicates list

输出结果如下:

这里便列出了所有的重复观测值,观察数据后,发现这就是我们构建的重复观测值。

我们在这里展示一下通过if列出给定范围内的重复值数据:

duplicates list if mpg > 20 //报告mpg变量大于20的重复值duplicates list in 1/75 //报告第1行到75行观测值的重复值

输出结果如下:


2.4  duplicates tag--标记重复值

使用duplicates tag,我们还可以通过generate(newvar)生成一个新的变量,标记每个观测值的重复次数,输入:
duplicates tag, generate(dup)list if dup!=0 //这里保留dup变量中不等于0的观测值,即重复的观测值

结果如下:

这里就给我们展示了所有重复值的重复次数。

2.5  duplicates drop--删除重复值

我们在duplicates最经常使用的可能就是删除重复值的命令了,只需要输入:
duplicates drop

结果如下:

我们发现重复值已经被删掉了。注意,这里保留的是每组重复值中首次出现的观测值,也就是保留每组重复值的第一行观测值。

根据指定变量删除重复值也是我们经常会用到的:

duplicates drop mpg,force

输出结果如下:

这样mpg变量中的重复值就被删除了。注意,这里一定要加上 force

以上就是本次关于 duplicates 系列命令的介绍啦,大家需要删除重复值时要记得试一下这个命令哦~ 欢迎大家留言交流~~~


END
最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。




腾讯课堂课程二维码





            


 对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!














往期推文推荐It's time to send a flower to your lover!        2021各省GDP新鲜出炉

 爬虫实战-采集全国各省疫情数据

 log——为你的操作保驾护航

 一行代码教你玩转emoji

 票房遇冷的春节档口碑冠军丨《狙击手》影评分析

 学习丰县,营造良好营商环境!

 大国丢娃图:从川渝到徐州!

 丰县“失火”,殃及徐州:股市超跌近30亿!

 Unicode转义字符——编码与解码

        徐州!徐州!

        B站弹幕爬虫——冬奥顶流冰墩墩&雪容融

        不会用Stata做描述性统计表?so easy!

        丰沛之地:备足姨妈巾

 过年啦,用Python绘制一幅属于你的春联吧!

       登上爬虫俱乐部“时光机” |上“机”出发 开启一段奇妙之旅

       【基础篇】查找并输出子字符串的定位

        Stata中的小清新命令——添加观测值

        PCA(主成分分析法)降维——Python实现

       超好用的事件研究法

        如何绘制任泽平《鼓励生育基金》的几幅图

        Python 第六天——字符串

        findname——想要什么找什么

        Python字符串之“分分合合”

        PDF转docx可批量操作?——wordconvert的小技巧

        考研之后,文科生需以“do”躬“do”!

       手绘五星兴家国——用Stata绘制五星红旗

        Seminar丨董事会的性别多样化和企业创新:来自国际的证据

       Python与数据库交互——窗口函数

        Stata之post命令——数据邮递 

        爬虫俱乐部成员的Stata学习经验分享来啦!

       Seminar丨2002年萨班斯·奥克斯利法案的经济后果

        我几乎画出了“隔壁三哥”家的国旗

        Python基础——三大数字类型,你都了解吗?
        如何用Stata绘制带指向性箭头标注的图像       

关于我们 


   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



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

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里
为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众
号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存