查看原文
其他

drop系列命令使用方法的归纳整理

田志凡 Stata and Python数据分析 2022-03-15


暑期Stata培训班招生啦!!!接力线上的网课培训,我们在今夏又开始新一轮的线下培训啦!8月4日至12日,爬虫俱乐部期待与您的相遇!培训具体内容详见推文暑期Stata编程技术定制培训班


有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~

好消息:爬虫俱乐部即将推出研究助理供需平台,如果您需要招聘研究助理(Research Assistant or Research Associate),可以将您的需求通过我们的公众号发布;如果您想成为一个RA,可以将您的简历发给我们,进入我们的研究助理数据库。帮我们写优质的推文可以提升您被知名教授雇用的胜算呀!

drop顾名思义“掉、降”,在Stata中具有“删除”的含义,主要用于删除我们不需要的变量或观测值,此外还与duplicates、graph、label等命令结合来删除重复值、图片、标签。

运用drop删除数据是贯穿数据处理过程中不可或缺的小环节,使用频率较高。下面以Stata中的auto数据为例来展示drop系列命令的用法。

1、删除变量

clear all

sysuse auto,clear

ds

可以看出Stata中带有的auto数据集中,共有如下12个变量。

如果我们想要删除前三列变量,可运行如下两行命令之一,结果如下图。

drop make price mpg

drop make-mpg

ds

此外,还可以使用如下的命令进行批量删除。

sysuse auto,clear

drop m*   //删除以m开头的所有变量,即make mpg

ds

drop _all  //删除所有的变量和观测值

2、删除观测值

(1)删除含有缺失值的行。

sysuse auto,clear

count

drop if rep78==.  //删除rep78的缺失值对应的行

count

可以看rep78一共有5个缺失值,包含该5个缺失值的行被我们删除了。

(2)使用missings命令删除含有缺失值的行。

使用missings命令可以达到(1)中相同的效果。如果初次使用missings需安装。可使用net installdm0085_1命令安装missings的包dm0085_1,也可以通过findit missings命令查找到missings的安装包并进行安装。

sysuse auto,clear

count

missings dropobs rep78,force

count

missings dropobs后面缺省变量名称时,表示删除所有变量均为缺失值的行。

(3)使用dropmiss命令删除含有缺失值的行。

dropmiss也是对缺失值删除的处理,同时也是外部命令,初次使用需要安装,可使用net install dm89_2命令进行安装,也可以通过findit dropmiss命令查找到dropmiss的安装包并进行安装。

sysuse auto,clear

count

dropmiss,obs any  //不管哪个变量,只要含有缺失值的行都会被删除。

count

可以看出在我们的auto数据中有5行含有缺失值,该5行被我们删除。

(4)删除重复值。

sysuse auto,clear

duplicates tag mpg rep78, generate(dup)   //生成dup变量,表示除自身外,有其他多少行的mpg、rep78值与该行重复。

sort mpg rep78

由上图可以看出mpgrep78重复的行,以及重复的数量。

sort price  

在删除mpg和rep78重复的行之前,按照price升序排序,这样保留的就是mpg rep78重复中,价格最低的一行。如果此前不先进行排序,则会按照数据默认的顺序保留mpg和rep78重复的第一行。

duplicates drop mpg rep78,force   //删除mpg和rep78观测值重复的行,只保留第一行。即价格最低行。

sort mpg rep78

此外,当duplicates drop后面的变量名缺省时表示对所有变量的观测值都重复的行进行删除,只保留第一行。

(5)删除特定行

sysuse auto,clear

drop in 1/2   //删除前两行

drop in -2/-1  //删除最后两行

drop if price > 10000 | price < 8000  //删除价格高于10000或者是价格低于8000的行。

此外,还可以在组内删除满足某一条件的观测值或变量,举例如下。

sysuse auto,clear

gsort rep78 -price  //按照汽车修理记录升序排列,然后在相同的修理记录中,按照价格降序排列。

bysort rep78: drop if _n != _N    //在每一组rep78相同的组中,只保留最后一行,即价格最低的行。

3、删除图片

首先我们先绘制两张图,并保存在E:\stataclub路径下,命名为graph1、graph2

clear all

cap mkdir E:\stataclub

cd E:\stataclub

sysuse auto,clear

twoway scatter price mpg

graph save Graph graph1,replace

twoway histogram price

graph save Graph graph2,replace

使用graph drop命令可以删除Stata内存中的图片,但是E:\stataclub中的graph1文件并不会被删除。

graph drop Graph 

若想要删除E:\stataclub路径下的graph1文件,则需要使用erase

erase graph1.gph

此时,文件中的graph1文件被删除。

4、删除标签

sysuse auto,clear

label define make 1 AMC 2 Buick 3 Cad   //定义标签

label list 

可以看出,我们所设置的make标签,1表示AMC、2表示Buick、3表示Cad;和原来已有的origin标签。

label drop make   //删除make标签

label list 

可以看到,make标签被我们删除。

注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同,纯属巧合!

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

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

文字编辑:王凯丽

技术总编:刘贝贝


往期推文推荐:

1.爬虫俱乐部新版块--和我们一起学习Python

2.hello,MySQL--Stata连接MySQL数据库

3.hello,MySQL--odbcload读取MySQL数据

4.再爬俱乐部网站,推文目录大放送!

5.用Stata生成二维码—我的心思你来扫

6.Hello,MySQL-odbc exec查询与更新

7.Python第一天

8.Python第二天

9.事件研究大放送

10.爬虫俱乐部隆重推出网上直播课程第一季



关于我们

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

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

投稿邮箱:statatraining@163.com

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

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

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