“我是要成为海贼王的男人”——local命令带你纵横数据汪洋

2016-10-08 王清 爬虫俱乐部 爬虫俱乐部

哈喽,诸君安。一日不见,爬虫酱已经迫不及待地想要和大家分享新的小技巧呢。今天要教给大家的是——dir获取文件名。嗯哼,有没有强烈的熟悉感,又是dir?嘿嘿,Stata博大精深,初看code形相似,细辨另有乾坤大。在今天的葵花宝典(划掉)中,爬虫酱把local命令的玩法升级,加入了respectcase选项,从此,Stata带你纵横数据汪洋,成为海贼王。天风浪浪,海山苍苍,冰雹子一样冰冷无序的文件再也拍不到你脸上。

这里有5txt文档需要处理,分别为A000001.txtA000002.txtA000003.txta000004.txta000005.txt,当我们用stata14.0直接读入这些txt文件,出现了乱码现象,因此需要对这些文件进行转码处理。

转码过程如下:

经过转码处理之后,数据已经没有出现乱码现象了:


但是一个有趣的现象是,当使用stata14.1以及最新的14.2版本进行上述操作之后,却出现了错误。


这是为什么呢?然后只做了一点点的小改变,程序又顺利运行了。

这两个程序的差别就是我在dir命令之后加了一个respectcase选项,这个选项是干嘛的呢?

首先,在没有加这个选项时,程序报错,说没有找到a000001.txt这个文件,我们通过dis命令发现,被赋给宏`files’的文件名把原文件名中的大写全部改成小写了,所以在调用宏的时候,调用的是被改过的文件名,所以程序必然会出错。


当加入respectcase选项之后,原来的文件名被保留下来,大小写并没有被改变,所以程序会顺利运行。


在对do文件进行转码时也可以运用同样的方法。有时我们在stata13写的do文件放到stata14中会出现乱码,用unicode转码就可以轻松解决乱码问题。但是依然别忘了加上respectcase选项,不然会出错。


以上就是respectcase的用法,一个小小的选项,解决了我们很多烦恼。respectcase,respect case,是不是就是尊重大小写的意思呢?这么一想是不是就特比容易理解它的用法了?越来越觉得stata的语言特别人性化,你从它的字面就能推断出它代表的意思,用起来也超级方便。各位stata大神说不定哪一天也可以写出来自己的一个命令,造福大家。

好了,爬虫酱已经将这一招传授给诸君,然数据汪洋恣肆,代码乾坤浩荡,学海无涯,回头无岸,诸位看官何不关注本微信号,天天都有新技巧,还有爬虫团队学霸荟萃,大神云集,集思广益,解你烦忧,快来关注吧。

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

(编辑@付彩月)

 

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

投稿邮箱xueyuan19920310@163.com

投稿要求

1)必须原创,禁止抄袭;

2)必须准确,详细,有例子,有截图;

注意事项

1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名。

2)邮件请注明投稿,邮件名称为投稿”+“推文名称

3)如果大家遇到关于stata处理分析数据的问题,也可以给该邮箱写邮件,邮件名称为提问”+“问题名称或者关键词,我们会在后期的推文里给予解答。


长按关注公众号 



微信扫一扫
关注该公众号