infile,你这是要搞事情啊!

2016-10-13 谢慧蓉 爬虫俱乐部 爬虫俱乐部

号外:

    今天爬虫俱乐部发生了一件大事:我们增加了新功能——留言功能与原创声明!!!所以各位虫宝可以直接和小编聊人生聊理想聊技术啦!

    在此,谢谢各位的关注与支持!


哈喽,诸君安。我是一只新来的爬虫酱,在我短短的爬虫经历中,我遇见了他——infile,并倾倒于其石榴裤下。哎呦,infile,你这是要搞事情啊!今天,爬虫酱就与大家分享下如何用infile导入固定格式的数据。 


infile导入固定格式的数据,必须要使用“秘密武器”——数据字典,每读入一个变量,数据字典就需要增加一行,每个变量都要规定四个设置,分别是开始的列数、存储的类型、变量名、读取格式,数据字典的使用格式如下:

infile using dfillename [if][in][,options]

—数据字典的格式如下:

dictionary using filename{

_column(#)    type   name    %infmt

_newline[(#)]

}

既然剑已配妥,让我们出门感受江湖吧!

1infile使用幼年期

1、准备数据

首先我们从最简单的数据导入开始,我们在文本编辑器notepad(小编提醒各位虫宝,记事本也是文本编辑器,也可以存储为raw格式文件)中输入以下内容,保存为test2.raw

其中:前5列为代码id2-5列是一个4位数的电话号码,第6列的字母代表的是城市的代码,7-9列的3位数代码表示的是所在社区代码,10-25列表示的是名字。

2、编辑数据字典

根据我们介绍的数据字典格式编辑数据字典,如下:


3、infile导入

根据我们介绍的infile数据字典使用格式导入数据:


怎么样,有没有觉得很容易呢,下面让我们放个大招!

2infile使用成熟期

1、准备数据

我们在notepad中输入以下内容,保存为test3.raw。可以发现这次要导入的内容每一个观测值占用了4行,所以当我们在编辑数据字典时必须指明在哪一点延伸到新的行。


2、编辑数据字典

3、通过infile导入



看,我们很容易地就把数据导入了!有没有觉得很爽!

2infile使用究极期

实际生活中我们就可以运用以上介绍的方法从网页上导入数据,爬虫酱闲来无事就喜欢用网易云音乐听歌,偷偷告诉你用infile就能直接把我们的音乐列表爬下来哦,下面是网易云音乐网页版美国流行歌曲101首的歌曲列表。


1、准备数据

infile将歌曲列表爬下来,第一步我们需要将列表复制到notepad。


可以发现每首歌的内容占了5行。

2、编辑数据字典


3、通过infile导入



导入成功!

4
infile使用小贴士

当我们在进行数据导入时,不仅要“进攻”,还要注意“防守”。我们可以用in exp设置只读入一个观察值以此对数据字典进行检验:


我们也可以用assert命令来检验导入到stata中的数据是否符合导入数据的要求,例如在前面的例子3中,导入要求中说明对于7yes or no的问题,yes=1,no=0,在读入数据后,我们用assert进行检验:


可以看出其中一个assert命令是无效的。出现这种情况有两个可能的原因,一是数据字典错误,二是数据文件错误,在实际的数据导入中,我们都应该考虑到这两个问题的存在。


好了,爬虫酱今天的分享就到这里了,用好infile让我们在数据导入中不再蓝瘦香菇,诸位看客何不关注本微信号,让我们用stata神功,掀起一场江湖的腥风血雨吧!

我们团队原来的微信公众号是“数据处理援助中心”,现在正式搬家到“爬虫俱乐部”,欢迎关注。新的公众号开始,我们推出有问必答栏目,对您提出的问题,我们会尽力回答,并通过推文的形式进行发布。我们也欢迎各位粉丝向公众号投稿。

(编辑@强宇曦)

                               
欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:xueyuan19920310@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)如果大家遇到关于stata处理分析数据的问题,也可以给该邮箱写邮件,邮件名称为“提问”+“问题名称或者关键词”,我们会在后期的推文里给予解答。

 

长按二维码关注哦



微信扫一扫
关注该公众号