查看原文
其他

爬虫俱乐部开发的命令更新及常见问题说明

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:薛   原

本文编辑:赵冰洁

技术总编:余术玲

爬虫俱乐部云端课程

  爬虫俱乐部于2020年暑期在线上举办的Stata与Python编程技术训练营和Stata数据分析法律与制度专题训练营已经圆满结束啦~应广大学员需求,我们的课程现已在腾讯课堂全面上线,且继续提供答疑服务。现在关注公众号并在朋友圈转发推文《来腾讯课堂学Stata和Python啦》或《8月Stata数据分析法律与制度专场来啦!》,即可获得600元课程优惠券,集赞50个再领200元课程优惠券!(截图发至本公众号后台领取)原价2400元的课程,现在只要1600元!  

爬虫俱乐部团队目前已经开发了二十余个实用的Stata命令。前一段时间,我们在用户反馈信息的基础上,对部分命令进行了更新,修复了一些bug。同时根据大家的反馈,我们还整理了一些常见问题的解决方案。现就前段时间命令更新的情况以及使用这些命令常见的问题进行整理。

一、结果输出命令
我们团队基于Stata15推出的putdocx命令,开发了sum2docx、corr2docx、t2docx以及reg2docx命令,这些命令能够帮助我们将实证研究中的描述性统计、相关系数矩阵、分组t检验以及回归结果制作成精美的表格,并输出到 .docx 文档中。这些命令发布后,我们进行了多次更新升级,提升了命令的执行速度并扩展了功能。在最近一次的更新中,我们根据用户反馈的信息,修复了corr2docx以及reg2docx命令在定义存放输出结果的文件时,文件名称或路径中出现空格导致程序报错的问题。大家可以使用ssc install来更新这些命令。
有些用户在使用这些命令的时候,会遇到“invalid specifications; column misspecified”的报错信息,如下图所示:

如果大家在将这些命令更新到最新版本后,遇到这样的报错信息,请将Stata进行更新到15.1或更高的版本。在15.0版本的Stata中,putdocx命令无法使用“.”来表示输出表格的整行或整列,在之后的更新中加入了这个功能。我们的这些命令跟着Stata官方的putdocx命令一起更新,因此使用15.0版本的Stata会出现上述报错。
还有用户询问reg2docx命令能否输出pseudo R2。这个命令能够输出回归命令后e类返回值(通过ereturn list查看)中所有的标量(scalars),例如要输出pseudo R2,只需要在scalars()选项中添加“r2_p”即可:
webuse lbw, clear
logit low age lwt smoke ptl ht ui
estimate store m1
probit low age lwt smoke ptl ht ui
estimate store m2
reg2docx m1 m2 using "result.docx", replace scalars(N r2_p(%9.2f)) z(%9.2f) mtitles("Logit" "Probit")

根据用户的其他建议,我们还将对这些命令进行更进一步的更新,添加包括使用变量标签替换变量名放入输出表格内、类似于outreg2中addtext()的选项、将表示显著性的星号“*”设置为上标等功能。
二、经纬度与中文地址相互转换的命令
2016年的时候我们推出了chinagcode与chinaaddress命令,这两个命令通过调用百度地图API,能够将中文地址和经纬度进行转换。后来由于百度地图开放平台将正逆地理编码接口更新到了3.0版本,新申请的密钥不能够在基于2.0版本接口的chinagcode和chinaaddress命令中使用,我们推出了cngcode和cnaddress命令。
这两个命令推出后,一些用户发现提取的信息都是缺失值。如果遇到这个问题,首先确定使用的密钥是3.0版本接口的。如果是早前申请的2.0的密钥,仍然要使用chinagcode和chinaaddress命令。此外,申请密钥时需要注意应用类型和白名单,如下图所示将白名单设置为“*”,申请的浏览器端密钥即可正常使用。

一部分用户提到百度地图API获取的经纬度相比于高德等地图平台,有较大的误差。这个问题出现的原因其实是选取的坐标系统不一样。高德地图、谷歌地图中国大陆地区使用的都是GCJ-02(国家测量局02号标准)坐标系,而百度地图默认使用的是百度坐标(BD09)。在cngcode和cnaddress命令中,我们加入了coordtype()选项,让大家能够设置提交和获取经纬度的坐标系。例如:
clear
input str100 fulladdress
"湖北省武汉市南湖大道中南财经政法大学"
"北京市海淀区北京大学"
end
cngcode, baidukey(百度地图密钥) fulladdress(fulladdress) long(lng1) lat(lat1) coordtype(bd09ll)
cngcode, baidukey(百度地图密钥) fulladdress(fulladdress) long(lng2) lat(lat2) coordtype(gcj02ll)

如上图所示,lng1和lat1是百度坐标下的经纬度,lng2和lat2是GCJ-02坐标系下的经纬度。
三、cnstock命令
前一段时间有用户使用cnstock命令获取A股上市公司股票代码和公司简称时遇到了如下的报错信息:

出现这个报错的原因是cnstock命令的数据来源网页发生了变化,之前ado文件里面的源代码读入和拆分的程序都不能正常执行。我们更新了这个命令中读入源代码的程序,并通过mata对源代码进行拆分处理,保证了命令的正常执行,并提高了执行速度。大家可以通过ssc install cnstock, replace更新这个命令。
四、subinfile命令
修复了部分用户提到的在encoding()选项中设置编码为gb18030仍然提示“invalid encoding”的问题。大家更新了命令后如果仍然存在类似的问题,请检查Stata安装路径中是否存在中文字符,如有中文字符,需要卸载重新安装。
感谢大家一直以来对我们团队的支持,我们将会继续努力,为大家传播技术,开发出越来越多实用的Stata命令。大家在使用我们团队开发的命令时如果遇到问题,也可以在后台留言或者发邮件到团队的邮箱。




对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐

Seminar | 道德培训真的有用吗?

网络爬虫入门之requests 库的基本使用——以亚马逊图书界面为例
reduce()函数和filter()函数闪亮登场
“环环”入扣之foreach命令

统计年鉴数据整理小技巧

Seminar | 作为飞行员,我比别的CEO多了什么?

利用TensorFlow构建前馈神经网络

推文合集(1)| Stata学习者必看的n篇推文!

Seminar | 诚信的价值

利用tushare获取股票数据及实现可视化

从Excel到Stata的“摆渡车”——import excel命令

光阴十载,见证了《经济研究》中的“高被引”

利用tushare获取股票数据

         在Python中实现Stata的stack功能

这些年,经管类C刊都在研究什么?

Seminar | 眼见为实吗?高管面部可信度、审计师任期与审计费用

Seminar | 恐怖袭击与CEO薪酬

代码补全,主题更换,Jupyter Notebook原来可以这样用?

【爬虫实战】“双十一”微博热搜实时跟进

Stata中的数值型变量分类神器--recode

fs命令——我们的小帮手
关于我们


微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存