有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~
喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~
在往期推文《编程界的暴走级管家—sublime text》《大神眼里的文本编辑器——sublime text 3》《想让谁亮,谁就亮!》中,我们都强烈安利大家抛弃stata 自带的do-file editor转而投入Sublime Text的怀抱。这是因为呀,Sublime Text可不是只有颜值高哦,它的实用性也是超乎你的想象!今天我们就继续给大家介绍Sublime Text中的几个超实用小技巧。
1
垂直选区
最 近大家都忙于对付期末考试呀,爬虫俱乐部的小编们也不例外呢。我们前几天在准备高级微观的presentation时,突然就很想把论文中的数据搜集来自 己写程序跑一遍。于是,我们从中国知网——中国经济与社会发展统计数据库中找到了论文中所需的每项指标的数据。但是啊,在把数据读入stata中时,我们 遇到了一个小小的问题,由于是对单项指标查找并下载的数据,所以我们的每个数据都是单列的,我们展示其中两个指标10年的数据,如下图所示:
我 们想把造林面积的数据放在工业产值数据的右边,单独一列,但是全部选中直接复制粘贴的话,会带上左边一列年份的数据,一个一个复制粘贴工作量又太大太过繁 琐,我们可是有好多好多列这样的数据呢!即使是在excel中的数据,当我们选中一列之后,粘贴过来就会变成下图这个乱七八糟的样子:
我们一开始的想法是用input分开导入数据,保存成几个dta文件,通过merge合并,但毕竟还是麻烦呀,有没有更简单的方法呢?这个时候,就需要隆重介绍下Sublime Text的强大功能了!在Sublime Text中,只要我们按住鼠标中键(滚轮键),就可以进行垂直选区啦:
除了鼠标中键,我们还可以按住Shift键使用鼠标右键操作,也能达到同样的垂直选区效果哦!当我们复制完一列造林面积的数据之后,我们使用鼠标中键或按住Shift键使用鼠标右键选中工业产值数据前的一列,然后粘贴造林面积的数据并键入空格:
这样就很快得到我们想要的数据啦~
2
快速更改所有同名内容
除了我们常用的“Ctrl+H”替换外,Sublime Text还有更方便的功能。我们以推文《想让谁亮,谁就亮!》中的“StataEditor.tmLanguage”文件为例,如果我们把光标放在“string”的开头或结尾处,然后按住Alt+F3(或Alt+Fn+F3),就可以同时选中所有的“string”并同时进行操作:
这个功能真的是很方便啊对不对?光是同时选中并同时更改这个操作看起来就很酷呢!
3
自动适应缩进的粘贴
首 先呢,我们来谈一谈为什么要对stata中每层循环都进行缩进。虽然stata中的程序不像python中的程序那样,每层循环必须缩进程序才可以被执 行,但是在此我们还是强烈建议大家养成一个良好的编码习惯,即每层循环都进行缩进。这样我们的程序不仅清晰明了,而且对程序进行修改也十分方便,尤其是在 程序特别长的时候,缩进就显得格外重要。此外,养成缩进的习惯,也有助于我们对其他语言的学习呢。
很多时候我们需要从其他的do文件中或者网页上复制粘贴一段代码,但是粘贴过来的程序可能非常乱(尤其对于该缩进的循环而没有进行缩进的时候)。举个简单的例子,我们的推文中多次涉及抓取新浪上市公司公告的网页源代码:
clear
cd E:/
forvalue page = 1(1)50{
cap copy "http://vip.stock.finance.sina.com.cn/corp/view/vCB_AllBulletin.php?stockid=`stkcd'&Page=`page'" temp.txt, replace
}
现在我们想在程序中加入两个很常用的循环:第一个是网页不存在时跳过进行下一个循环,第二个是如果没有成功抓取,我们让程序停6秒,然后继续抓取直到抓取成功,从而防止因为网速问题导致网页没有抓取成功,如下所示:
if _rc == 601{
continue
}
while _rc != 0 {
sleep 6000
cap copy "http://vip.stock.finance.sina.com.cn/corp/view/vCB_AllBulletin.php?stockid=`stkcd'&Page=`page'" temp.txt, replace
}
现在我们使用“Ctrl+v”粘贴进forvalue的循环中,我们看到,这里并没有自动缩进:
当然这里同时选取上边两个小循环,然后按Tab键调整格式也是可行的。但是如果程序特别长,循环特别多的时候我们很难分清楚循环的隶属关系,这个时候再去用Tab键调整的话不仅麻烦,而且容易出错。那么,有没有什么办法可以解决这个小小的问题呢?当然有啊!Sublime Text可是万能的!我们强烈建议大家使用“Ctrl+Shift+v”进行粘贴:
这个带有自动缩进功能的粘贴实在是太好用啦,不仅在循环比较多的时候能让我们很清楚地看出每一层循环的隶属关系,而且简直是强迫症的福音啊!不管三七二十一使用“Ctrl+Shift+v”粘贴都完全没问题的!
注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同,纯属巧合!
以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!
应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~
文字编辑/王 悦
技术总编/刘贝贝
往期推文推荐:
5.爬虫俱乐部又出新命令了——wordconvert转换你的word文件
6.putdocx+wordconvert—将实证结果输出到Word(.docx)文档
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。
欢迎关注爬虫俱乐部
微信扫一扫
关注该公众号