听说你想知道st_data()函数的用法

2017-11-04 高金凤 爬虫俱乐部 爬虫俱乐部

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


诸君安!在往期推文《如何在Mata中进行网页分析》中我们用到了Mata函数st_sview(),该函数表示读取Stata当前内存的字符型数据,并赋给Mata矩阵。其实在Mata中有两类函数可以读取Stata当前内存的数据,分别是st_data()st_view()函数。对此,我们分两篇推文进行介绍,今天先介绍st_data()的用法。


我们打开st_data()函数的help文件,总结st_data()函数的语法结构如下:

可以看到,函数st_data()主要是提取Stata 当前内存的数值型变量,而函数st_sdata()主要是提取Stata 当前内存的字符型变量,其中:i表示新生成的矩阵行数,j表示新生成的矩阵列数,selectvar表示一个标量,这里有3种类型的表示方法:

(1)如果selectvar是变量的名称或者是该变量在Stata内存中的变量序号,则表示提取该变量的非零观测值(含缺失值)所对应的样本。

(2)如果selectvar0,则表示提取所选变量中没有缺失的观测值。

(3)如果selectvar“.”或者“ ”,则与不加选项selectvar是一样的效果。


下面我们通过例子来详细说明函数st_data()的用法。首先我们在Stata 中读入系统数据auto,键入如下命令:

sysuse auto,clear

keep in 1/10

接着进入Mata环境,先提取数值变量,输入命令如下:

mata

         A1=st_data(1,2)   //提取第二个变量的第一个观测值。

         A1

         A2=st_data(.,2)      //提取第二个变量的所有观测值。

         A2

         A3=st_data((1\2\5),2)    //提取第二个变量的第1、2、5个观测值。

         A3

         A4=st_data((1,5),2)     // 提取第二个变量的第1-5个观测值。

         A4

         A5=st_data((1::5),2)     // 同上

         A5

         A6=st_data((1,5\7,9),2)    //提取第二个变量的第1-5和第7-9个观测值。

         A6

         A7=st_data(.,(3,9))    //提取第三、九个变量的所有观测值

         A7

         A8=st_data(.,("mpg","weight"))    //提取变量mpg和weight的所有观测值。

         A8

         A9=st_data(., "mpg weight")    //同上

         A9

end

部分结果如下:

除此之外,st_data()函数还可以直接提取变量的滞后变量和虚拟变量,举例如下:

先构造一个时间变量year,键入如下命令

en year=2000+_n

tsset year   //定义变量year为时间变量

然后,进入Mata环境进行提取:

mata

         A10=st_data(., ("price", "l.price"))    // 提取变量price和变量price的滞后一期的所有观测值。

         A10

         A11=st_data(., "price l.price")    // 同上

         A11

         A12=st_data(., "mpg i.rep78")    //提取变量mpg和虚拟变量rep78的所有观测值,含缺失值。

         A12

部分结果如下:

接下来,我们看看例子中加入选项selectvar的含义,键入如下命令:

tab rep78, generate(r)   //生成变量rep78的虚拟变量

mata

         A13=st_data(., "mpg weight")   

         A13

         A14=st_data(., "mpg weight","r2")  //虚拟变量r2取值是非0时,提取变量mpg  和weight对应的观测值

         A14

         A15=st_data(., "mpg weight",15)  //同上,15表示变量r2在stata内存中变量的序号

         A15

         A16=st_data(., "mpg i.rep78", )    // 提取变量mpg和虚拟变量rep78的所有   观测值,含缺失值。

         A16

         A17=st_data(., "mpg i.rep78",.)    // 同上

         A17

         A18=st_data(., "mpg i.rep78",0)   //提取变量mpg和虚拟变量rep78非缺失的观测值

         A18

end

部分结果如下:


接着我们提取Stata当前内存的字符变量,键入如下命令:

mata

         A19=st_data(.,1)    

         A19

         A20=st_sdata(.,1)      //提取第一个变量的观测值

         A20

         A21=st_sdata(., "make")   //提取变量make的观测值

         A21

         A22=st_sdata(., "make","r1")   //提取虚拟变量r1取值非0时,对应的样本

         A22

         A23=st_sdata(., "make","r2")   //提取虚拟变量r2取值非0时,对应的样本

         A23

end

部分结果如下:

注意到,矩阵A19中的观测值都是缺失值,这是因为函数st_data()只能提取Stata当前内存的数值型变量。这里 Stata也不会因此而报错,只不过这些变量的观测值都以缺失值的形式存在。


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

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

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

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号