大数跨境
0
0

变量的不同观测值个数统计——distinct和vardistinct

变量的不同观测值个数统计——distinct和vardistinct Stata and Python数据分析
2024-03-17
1
导读:A good life is when you assume nothing, do more, need less, smile often and realize how fortunate yo

本文作者:刘畅,河南大学经济学院

本文编辑:马梦杰

技术总编:李婷婷

Stata and Python 数据分析

爬虫俱乐部Stata基础课程Stata进阶课程Python课程可在小鹅通平台查看,欢迎大家多多支持订阅!如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~

 

1.导读



本期我们来介绍关于取值个数这一问题,在日常数据处理过程中,当我们想要了解某变量存在多少个不同的观测值时,对于总数较少的数据我们可以分别进行检索并做处理,但对于总量较大的数据,若采用手工处理的话,往往费时费力,那么如何简单的找出不同观测值的重复个数呢?
首先,最简单便是tab,我们以Stata中自带的auto数据来举例,使用tab命令我们可以清楚地观察到mpg观测值个数、每个观测值的重复次数以及频率分别为多少。
clear allsysuse auto.dtatab mpg
得到如图所示的结果:


但当我们只需要检索不同观测值有多少或者数据集较大时,这一命令就较为麻烦了。出现上述情况时我们还可以用下面两个命令来查找重复值,它们分别是“distinct”“vardistinct”。


2.distinct命令



distinct命令主要用于报告不同观测值的数量,当变量观测值为(1,5,3,2,2,2,3,3,6,6),则distinct的返回值则为5,即该变量存在5个不同的观测值。


*安装命令ssc install distinct, replace

命令语法:
distinct [varlist] [if] [in] [, missing abbrev(#) joint minimum(#) maximum(#) ]

其中, varlist是待处理的变量(一个或者多个),另外可以配合missing、abbrev、joint、minimum和maximum等选项使用。

missing:表示包括缺失值,默认不包括;

abbrev:定义显示变量的最大字符,若定义的字符长度小于字符串的长度,字符串就会进行转换。比如字符串headroom 的长度是8,利用 abbrev(4) 转换后,就会变为 hea~m;

joint:确定多个变量下不同联合取值的数量;

minimum:表示可返回变量的最小不同观测值数;

maximum:表示可返回变量的最大不同观测值数。

我们使用Stata自带数据来举例:

*举例sysuse auto.dtadistinct mpg

图中,我们看到变量mpg共存在74个观测值,其中distinct的返回值为21,说明存在21个不同的观测值,这个变量存在重复值。同样的,使用distinct加joint选项,可以分析该数据集在不考虑缺失值情况下存在多少个不同的观测值。

*举例sysuse auto.dtadistinct, jointdistinct, max(25)

结果显示,该数据集在不考虑缺失值的情况下,拥有69个不同的观测值,同时数据集中的各变量,其最大不同观测值数小于25的共有6个,分别是 mpg、rep78、headroom、trunk、turn和foreign。


3.vardistinct命令



vardistinct命令能够帮助生成一个新的变量来表示不同观测值数量。

*安装命令ssc install vardistinct, replace

令语法:

vardistinct varlist [if] [in] , generate(newvar) [ by(varlist) missing ]
其中, varlist是待处理的变量(一个或者多个)。
generate设置生成新变量newvar,另外可以加上by选项和missing选项:by选项可以加入其他的一个或者多个varlist进行分析,missing选项加入缺失值进行分析。
我们同样使用mpg变量来举例,运用vardistinct命令查找变量mpg共存在多少不同的观测值,并generate新的一列来显示。
*举例clear allsysuse auto.dtavardistinct mpg, generate(v1)tab v1 ///也可以直接通过查看v1的取值数来判断存在多少不同的观测值

由图我们可以看出,mpg共存在21个不同的观测值,这一结果与前面使用distinct命令运行结果相同。
进一步,我们可以加入by选项,结合其他数据进行分析。
*举例clear allsysuse auto.dtavardistinct mpg, by(foreign) generate(v2)tab foreigntab v2 foreign///也可以直接通过查看v2的取值数来判断存在多少不同的观测值

上图结果显示,如果是国外汽车,mpg有13个不同观测值,如果是国内生产,则有17个不同的观测值。


4.简单实际应用


我们从网络上选取了一份运动会参与者学号及项目名单,并处理后转化为可读入的数据文件,但这份名单中有人参与多个项目,所以我们分别使用“distinct”和“vardistinct”命令处理,通过学号来查看到底有多少同学参与这些运动。
clear allcd "D:\stata17\数据"use 学号.dta


*使用distinct命令distinct 学号*使用vardistinct命令vardistinct 学号, generate(v1)tab v1

可以看出,两个命令结果相同,共有38个同学参与了这些运动。使用以上两个命令就能够较为容易的得到变量的取值个数了,对于只需要检索不同观测值数量且数据集较大的情况,可以尝试一下,希望能为同学们的学习或者生活有所帮助。



重磅福利!为了更好地服务各位同学的研究,爬虫俱乐部将在小鹅通平台上持续提供金融研究所需要的各类指标,包括上市公司十大股东、股价崩盘、投资效率、融资约束、企业避税、分析师跟踪、净资产收益率、资产回报率、国际四大审计、托宾Q值、第一大股东持股比例、账面市值比、沪深A股上市公司研究常用控制变量等一系列深加工数据,基于各交易所信息披露的数据利用Stata在实现数据实时更新的同时还将不断上线更多的数据指标。我们以最前沿的数据处理技术、最好的服务质量、最大的诚意望能助力大家的研究工作!相关数据链接,请大家访问:(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或扫描二维码:


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

往期推文推荐




品诗雅谈的“诗词大会“——putdocx指令的使用

Stata答疑——专利个数知多少

Stata压缩和解压缩文件的几种方法

【python库——whisper】实现音频转换成文字功能

用Python进行乳腺癌预测的简单机器学习

足不出户的“世界之旅”

【爬虫实战】python文本分析库——Gensi
Python可视化-绘制三维空间空间图形
使用Stata遍历文件的多种方式

Python构造数据透视表

Python可视化-Bokeh库

今年的双十一,你加购了几本书籍呢

基于Python的文本摘要提取

第十届中国产业经济研究学术年会征稿通知
【爬虫实战】获取公务员招考公告
【逆向爬虫】Python中执行调用JS的多种方法汇总
ZipFile库——自动化数据压缩与解压缩
Stata数据处理实用技巧
Python 自动化办公:一键批量生成 PPT
国家社科基金项目热词出炉,词云图带你一看究竟!

     关于我们 

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

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



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

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


【声明】内容源于网络
0
0
Stata and Python数据分析
爬虫俱乐部,新的启航
内容 1337
粉丝 0
Stata and Python数据分析 爬虫俱乐部,新的启航
总阅读78
粉丝0
内容1.3k