打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
quietly----原来还可以这样用



喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~


有过爬虫经验的码农们都希望抓取信息的速度越快越好,在之前的推文中,我们介绍了rmsg这个命令《rmsg-爬虫到底要花多少时间》,它可以告诉你抓取海量数据到底需要多少时间,在知道爬虫所需具体时间之后,我们的下一步当然是优化我们的程序,进一步缩短爬时间。在这里呢,小编就给大家介绍一个炒鸡好用炒鸡简单的命令---“quietly”。

简单来说,quietly表示悄悄地运行程序,即不在Stata窗口显示运行的结果。那么在什么情况下,我们可以使用到这个命令呢?接下来,让小编来举几个例子吧。

1.只显示关键信息

假设我们运行了多个回归结果,想要从中挑出拟合优度()最高的那个方程,一般来说我们都是这样做的:

sysuse auto,clear

reg price weight mpg

reg price weight mpg gear_ratio

reg price weight mpg gear_ratio foreign

输出如图:

在stata结果窗口中,我们可以看到输出了很多我们当前并不需要的信息,使得我们不能马上就观察到拟合优度的值并进行比较。那么在这个情况,我们就可以使用quietly命令啦。对于以下这种单行的命令,我们可以直接将quietly加在程序的开头,每次运行完回归结果之后,拟合优度()会被保存到了e(r2)这个宏中。

sysuse auto,clear

quietly reg price weight mpg

dis `e(r2)'

quietly reg price weight mpg gear_ratio

dis `e(r2)'

quietly reg price weight mpg gear_ratio foreign

dis `e(r2)'

输出结果如图:

是不是很快就发现第三个方程的拟合优度是最高了的呢。

2.缩短运行时间

既然quietly可以让程序默默进行而不显示输出结果,这在一定程度上可以缩短了运行的时间,而这若运用到海量数据爬取中,则能大大缩短程序运行时间。

 还记得当初我们用rmsg计算抓取港股数据股票代码为00001的历年交易数据总时间为多少吗?

那么我们在源程序上做一些修改,让爬虫悄悄进行,只显示当前抓取的年份和时间,程序如下,值得注意的是,对于多行程序,只需将其放在quietly{ }的花括号中:

set rmsg on

clear

cap mkdir e:/港股数据/

cd e:/港股数据/

forvalue year = 2000(1)2016 {

       forvalue season = 1(1)4 {

              quietly{

                     !curl --data 'year=`year'&season=`season'' -o `year'_`season'.txt http://stock.finance.sina.com.cn/hkstock/history/00001.html  

                     clear

                     set obs 1

                     gen v=fileread('`year'_`season'.txt')

                     split v,parse('''')

                     keep v3

                     rename v3 v

                     replace v= ustrregexra(v,'\s+','')

                     split v,parse('')

                     drop v v1

                     sxpose,clear

                     rename _var1 v

                     replace v= ustrregexra(v,'\s+|^|$','')

                     split v,p('')

                     drop v

                     rename (v1-v10)(日期 收盘价 涨跌额 涨跌幅 成交量 成交额 开盘价 最高价 最低价 振幅)

                     drop in -1

                     save `year'_`season',replace

                     erase `year'_`season'.txt

              }

       dis '`year'_`season''    

       }

}

openall

save 00001.dta,replace

我们可以在输出窗口中看到:

输出窗口不再像原来那样一直处于快速滚动状态,使我们不清楚到底当前已经抓到哪一部分了,修改完之后,窗口的输出变得简单明了。并且最后的运行时间从3分钟缩短到1分钟。哇,只添加了一个quietly命令,就把时间缩短为原来的1/3,这也太棒了吧。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【推荐】stata回归结果输出到文档
如何使用 Stata 生成所有自变量的组合进行回归并筛选自变量系数估计值均显著的模型?
春节_喜庆_立体_动画_ppt模板_拉幕_2012年
用tmpgenc為影片加字幕初步說明
stata 笔记常用
DOS命令八大经典案例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服