朝花夕拾 | Stata的环境参数及提取

2017-04-04 爬虫俱乐部 爬虫俱乐部 爬虫俱乐部

诸君安

又是朝花夕拾时间

因原发表的公众号 数据处理援助中心 即将寿终正寝

今后的朝花夕拾推文都不再以转载形式发布


环 境参数,顾名思义,就是用来描述当前的计算机环境的参数。包括比如当前的日期和时间、计算机的类型(PC/Macintosh(Intel 64-bit))、操作系统(Windows/Unix/ MaxOSX)和Stata的具体版本信息、更新情况、以及所使用的计算机的相关属性等等。下面我们将一一介绍这些环境参数。每一个环境参数的介绍后面都 附有一个示例,在每一个示例中”.”后面的语句表示命令行,紧接着的第二行表示输出结果。命令行的格式为disp c()或disp "`c()'",其中disp是display命令的缩写,表示输出;而c()表示一个具体的c()类返回值;所以disp c()命令就是要求Stata输出相应的常量,而disp "`c()'"则给出相同的结果。这里的逻辑是:c()是一个字符串,可以被disp直接调用,也是一个局部宏,我们用符号`'提取了c()所代表的内 容,然后将该内容作为双引号中的字符串信息,并由disp输出。

1.c(current_date)当前日期。格式为:“dd Mon yyyy”,比如:18 Oct 2014.

. disp c(current_date)

. disp "c(current_date)"

. disp "`c(current_date)'"

. disp "` c(current_date)'"

c(current_date)Stata里面是一个字符串,所以第一个命令中,我们直接将其作为disp的内容,将当前日期打印在屏幕上,在第二个命令中,我们在c(current_date)上面添加了双引号,这时候disp打印出的是c(current_date)本身。在第三个命令中,我们将c(current_date)看做是一个局部宏,用符号`'做宏替代,这时候Stata首先进行了宏替代运算,于是当前日期成了`c(current_date)'的返回值,但是该返回值处在disp命令后的双引号里面,所以再次被转化成字符串被disp命令输出到屏幕上。最后一个命令证明c(current_date)确实在Stata的内存中有局部宏的身份,当我们在`'符号中添加一个空格键以后,Stata就不能识别`'符号里面的内容了。本书的作者在Stata Forum里面看到的是,这里的`'符号是一个强制运算符号,其实这是不对的,如果仅仅是强制运算,那么Stata应该也能识别` c(current_date)'





2.c(current_time)当前时间。格式为:“hh:mm:ss”,比如:09:59:23.

. dis c(current_time)

. sleep 1000

. disp "`c(current_time)'"

以上程序中我们使用两种方式显示表征当前时间的c()类返回值,但是由于计算机处理这些命令的进程非常快,以至于几乎不花费什么计算机时间,为此我们在两个disp命令之间增加了命令sleep 1000,要求计算机在两个命令之间休眠1000毫秒,这样,我们得到的两个当前时间的差异正好是1秒钟。





3.c(stata_version)c(version)Stata的版本与当前设定的命令编译版本。

这里需要指出的是,当前用户可能在使用Stata 14.0,但是随着Stata软件的更新,一些老的命令可能被废止,但是如果找到了一个较早时期的程序,里面用到了某些被废止的程序呢?这时候用户其实是可以设定Stata的命令编译版本的,比如用命令version 8.0就告诉Stata,以后遇到命令,都按照Stata 8.0的系统进行编译,即假定用户使用的是Stata 8.0版本。Stata的当前版本号和命令编译版本号可以通过两个c()类返回值获取,分别是c(stata_version)c(version)。下面的命令给出了相应的用法,在两个disp之间,我们用version 8.0设定了命令编译版本,所以,c(version)给出的结果就从缺省状态的14.2变为8.0了。

. disp c(stata_version)

. disp c(version)

. version 8

. disp c(stata_version)

. disp c(version)





4.c(born_date)当前正在运行的版本的发布日期,该日期显示的格式与c(current_date)相同。

.disp c(born_date)

这表示当前Stata最近一次的更新日期为2016年9月14日。





5.c(bit)当前所使用的Stata64位操作系统的版本还是32位的操作系统的版本。

.dis c(bit)





6.c(SE)当前所使用的Stata是不是SEspecial edition)或MP(multi-processor)版,若是SE或MP版,则会显示“1”,否则会显示“0”。

.dis c(SE)





7.c(MP) 当前所使用的Stata是不是MP(multi-processor)版,若是MP版,则会显示“1”,否则会显示“0”。

.dis c(MP)





8.c(processors) 当前所使用的Stata/MP版的处理器的核数,若不是MP版,则会显示“1”。

.dis c(processors)





9.c(processors_lic) 当前所使用的Stata/MP版所得到许可的处理器核数,若不是MP版,则会显示“1”。

.dis c(processors_lic)





10.c(processors_mach) 如果当前所使用的是Stata/MP版,则会显示计算机的处理器核数,如果不是MP版,则会显示缺失值。

.dis c(processors_mach)





11.c(processors_max) 如果当前所使用的是Stata/MP版,则会显示Stata/MP所能使用的处理器核数的最大值,这个值等于c(processors_ilc)c(processors_mach)的最小值。如果不是MP版,则会显示“1”。

.dis c(processors_max)





12.c(mode) Stata运行在什么方式的计算机系统上。如果运行在交互式方式的计算机系统(即我们通常使用的windowsXPwindows7等系统),则显示为空;如果运行在其他方式系统上(比如Unix系统),则会显示“batch”。

.dis c(mode)

Stata返回为空,表示当前Stata运行在交互式计算机系统上。





13.c(console) 当前运行的是否为视窗版本,如果是则显示为空,反之则会显示“console”。

.dis c(console)

Stata返回为空,表示当前运行的是视窗版本。





14.c(os) 当前所使用的计算机的操作系统。如果使用的是Windows系统,则会显示“Windows”;如果使用的是Unix系统,则会显示“Unix”;如果使用的是Mac系统,则会显示“MaxOSX”。

.dis c(os)





15.c(hostname) 主机名称。有些版本的Stata并没有定义这个常量,此时如果输入命令dis c(hostname),会提示c(hostname) undefined.

. di c(hostname)





16.c(machine_type) 计算机的类型,Stata会根据计算机的硬件状况显示“PC”或者“PC(64-bit X86-64) ”或者“Macintosh(Intel 64-bit)”等。

.dis c(machine_type)





17.c(byteorder) 根据计算机的字节顺序,Stata会显示“lohi”或者“hilo”。假设有个两位数的整数,在有的计算机上会把最重要的字节写在前面,对这种计算机,Stata会显示“hilo”;而在有的计算机上会把最不重要的字节写在前面,对这种计算机,Stata会显示“lohi”。

.dis c(byteorder)

即目前所用的计算机的字节顺序是把最不重要的写在前面而把重要的写在后面。





18. c(username)  当前计算机机主的身份信息,该结果根据操作系统得到。如果没有对计算机进行设置,一般会显示“Administrator”。

.dis c(username)



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

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过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分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号