赐予我力量吧,stata!

2017-03-13 武大孙曼纯 爬虫俱乐部 爬虫俱乐部

诸君安,春 天要来啦,不知道大家是不是也像小编一样充满了活力,想出去约约约浪浪浪,今天小编要给大家介绍两个有趣的小命令,这两个小命令可以为我们批量处理各种文 件节约很多时间,大家就有时间出去踏青啦,嘿嘿。想要批量处理文件,首先要读取文件名。那么今天小编就给大家提供两种读取文件名的命令——dir命令fs命令。相信大家一定对这两个命令有一种一见如故的感觉,没错,在我们之前转载的推文:如何用stata批量读取多张工作表的Excel文件中,大家一定见识过它们的厉害啦,在那篇文章中,利用fs命令或者dir命令,我们就可以获取多张工作表,然后结合foreach命令就可以对.xlsx这个磨人的小妖精大刀阔斧的改动啦

首先给大家介绍一个非常常见的读取文件名的命令—dir命令。

1

我是神秘莫测的——dir命令

首先让我们看一下这个命令的语法结构:

local mname : dir " dir " {files / dirs /other} " pattern " , nofail respectcase

这是一个宏扩展函数,就是说除了对宏变量单纯的赋值外,我们还可以使用各种复杂的函数,对其进行各种复杂的操作。其中:

“mname”表示你要返回的宏变量;

“pattern”表示你所要输出的数据类型,也就是你所要处理的数据类型;

“nofail”表示无论该目录下所对应的文件名字有多少,都应该输出,因为文件名过多时如果没有这一句,stata会报错,但是一般情况下都不需要加;

“respectcase”选项表明在执行匹配时要考虑文件名的大小写,仅在Windows操作系统中需要使用,因为与其他操作系统不同,Windows默认情况下不区分大小写的文件名。

例如我们将.dta文件输入到宏变量filelist中:

local filelist : dir "." files "*.dta", respectcase

然后我们需要用disp列出所有文件:

disp `"`filelist'"'

不知道大家是否觉得dir命令不仅繁琐、选项众多而且还需要结合disp命令查看输出的文件列表,没错你的感觉是对的,小编也累觉不爱,不过,还好我们还有短小精悍的fs命令!

2

我是高颜值的——fs命令

fs这个命令不仅颜值高(短小精悍),而且也很有内容,真的是深得我心,首先我来给大家简单的介绍一个这个命令:

cd d:\stata空气质量

ssc install fs

fs*.dta

fs命令需要先安装,ssc的全称是Statistical Software Components,简单地说就是一个小程序杂货铺,里面有来自世界各地的各种黑暗和神奇的命令,fs也是其中之一啦,所以我们要从ssc中下载它。

然后fs*用于下载所在目录下所有的文件,如果我们只想下载其中的某一类文件我们只需在其后面加上后缀名就可以了,比如下载所有的dta文件:fs*.dta,并且其值会存储在r( )文件中:

这样我们就可以得到D盘的“stata空气质量”文件夹下面的所有.dta文件啦,是不是觉得这个命令输出文件名不但简洁易懂而且排列整齐吖~

3

批量处理文件

不得不说这两个命令一直是各种大牌命令的“收割机”,和各种常用大牌命令结合都有让你意想不到的惊喜,今天小编就给大家简单的介绍下,希望能够帮助你工作效率up up up!小编接着使用fs命令返回的r( )文件。

小编想将这些数据添加到一起,这里有两个方法:

方法一:结合foreach循环

clear  //将之前内存当中的数据清除

foreach file in `r(files)' {

append using `file’

}   //利用foreach循环依次添加r( )中的文件

小编的程序截图如下:

(下面的note是指stata自动将字符串的长度调整一下)

方法二:使用openall命令

openall *    //对当前工作路径的dta文件进行合并

结果是一样的呢,小编在这里就不放程序截图啦。

我们再点击Data—Data editor查看添加到一起的数据:

噔噔噔!所有数据真的就在一张表里啦,是不是很强大呢,其实结合foreach命令,stata能做的事还有很多呢,在我们之前转载的推文:如何用stata批量读取多张工作表的Excel文件中也有类似的例子。

看到这里,聪明好奇的你是不是感叹这么多好用的命令,快把它们上交给国家!嘿嘿,像fs这么好用又精巧的小命令,还有很多很多,所以踏青之余记得学习stata呐,小爬虫一直与你同在~



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

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

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号