你真的了解入门级命令clear吗?

2017-11-13 闫续文 爬虫俱乐部 爬虫俱乐部

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

回想一下,我们刚开始学习stata的时候,接触的第一个命令是什么呢?是clear。每当我们打开stata,运行的第一行程序是什么呢?是clear。但是很多时候,如果我们一开始只运行clear后续程序却会报错,比如,我们定义一个名为“myprog”的program:

clear

program define myprog

dis "hello"

end

myprog

此时我们想要定义另外一个名为“myprog”的program来替换掉目前这个,很自然地,我们运行:

clear

program define myprog

dis "hi"

end

myprog

可是这个时候,stata却报错了,提醒我们名为“myprog”的program已经存在了:

这就很奇怪了,明明用了clear呀,为什么program却没有被清除掉呢?那么今天,我们就来聊一聊这个入门级命令——clear

clear命令用来清除内存,可以后接选项,也可以单独使用,我们主要介绍以下几种常见用法:

1. clear

clear单独使用时,指的是清除当前内存中所有的数据和标签,相当于同时运行以下程序:

drop _all //清除当前内存中所有的变量和观测值

label drop _all //清除当前内存中所有的标签

所以呀,只运行clear当然不能清除当前内存中的program,stata就报错啦。

来举个例子:

sysuse auto, clear //打开系统自带的auto文件

describe //总体展示数据情况

label list //列出标签

这个时候我们运行:

clear

describe

label list

可以看到,当前内存中的数据和标签就都被清除啦。

2. clear mata

clear mata指的是清空mata内存,相当于运行:

mata: mata clear //详见往期推文《初识MATA(一)》

3. clear results

clear results指的是清除当前内存中存放的返回值(详见推文《朝花夕拾 | stata返回值》),最常用的返回值有以下两种:

(1)由general命令(如summarize、describe)产生的,存放在宏`r()’中的返回值;

(2)由estimation命令(如regress、logistic)产生的,存放在宏`e()’中的返回值。

举个例子:

sysuse auto, clear

regress price mpg rep78 foreign

summarize price

return list //显示由summarize命令产生的返回值的宏名及结果

ereturn list //显示由regress命令产生的返回值的宏名及结果

接下来我们运行:

clear results

return list

ereturn list

可以看到,由summarize命令和regress命令产生的返回值就都被清除啦。

4. clear matrix

clear matrix指的是清除当前内存中由matrix命令产生的所有矩阵,但是不会清除mata命令的矩阵。比如,我们生成一个矩阵:

matrix input A=(1,2\3,4)

mat list A

上图显示了生成的矩阵A,此时运行:

clear matrix

mat list A

生成的矩阵A就被清除啦。

5. clear programs

clear programs指的是清除当前内存中所有的program,我们回到开头的例子,此时我们想要重新定义“myprog”,首先要清除内存中的program:

clear programs

program define myprog

dis "hi"

end

myprog

这样我们就成功清除原本的“myprog”并重新定义“myprog”啦。

6. clear all

clear allclear *是一样的,指的是清除当前内存中所有的数据、标签、矩阵、标量、存放的返回值、类、program、mata内存等,同时还可以关闭所有post文件、图表窗口、对话框等,并把所有的计时器归零。

所以呢,当你想要一股脑清除内存中的很多东西时,最省事的办法就是直接运行clear all啦。

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

接下来是个好消息!!!

喜大普奔,爬虫俱乐部的github主站正式上线了!!!

我们的网站地址是:https://stata-club.github.io

粉丝们可以通过该网站访问过去的推文啦~

我们真诚地欢迎您为本站的建设提出建议~


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

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

文字编辑/王   悦

技术总编/刘贝贝


往期推文推荐:

1.高校学术大神:你的导师上榜了吗?

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

3.命令sum2docx输出统计量表到docx文件

4.reg2docx报告你的实证结果吧!

5.爬虫俱乐部又出新命令了——wordconvert转换你的word文件

6.putdocx+wordconvert—将实证结果输出到Word.docx)文档

7.Stata 15Markdown——没有做不到,只有想不到!

8.矩阵和宏的故事

9.shelloutopen anything

10.Putpdf--神奇的转换工具



关于我们

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

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

投稿邮箱:statatraining@163.com

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

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号