美文网首页
爬虫俱乐部开发的命令更新及常见问题说明

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

作者: StataPython数据分析 | 来源:发表于2020-12-14 12:35 被阅读0次

    本文作者:薛 原
    文字编辑:赵冰洁
    技术总编:余术玲

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

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

      有些用户在使用这些命令的时候,会遇到“invalid specifications; column misspecified”的报错信息,如下图所示:

    image

      如果大家在将这些命令更新到最新版本后,遇到这样的报错信息,请将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")
    
    image

      根据用户的其他建议,我们还将对这些命令进行更进一步的更新,添加包括使用变量标签替换变量名放入输出表格内、类似于outreg2中addtext()的选项、将表示显著性的星号“*”设置为上标等功能。

      二、经纬度与中文地址相互转换的命令
      2016年的时候我们推出了chinagcode与chinaaddress命令,这两个命令通过调用百度地图API,能够将中文地址和经纬度进行转换。后来由于百度地图开放平台将正逆地理编码接口更新到了3.0版本,新申请的密钥不能够在基于2.0版本接口的chinagcode和chinaaddress命令中使用,我们推出了cngcode和cnaddress命令。

      这两个命令推出后,一些用户发现提取的信息都是缺失值。如果遇到这个问题,首先确定使用的密钥是3.0版本接口的。如果是早前申请的2.0的密钥,仍然要使用chinagcode和chinaaddress命令。此外,申请密钥时需要注意应用类型和白名单,如下图所示将白名单设置为“*”,申请的浏览器端密钥即可正常使用。

    image

      一部分用户提到百度地图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)
    
    image

      如上图所示,lng1和lat1是百度坐标下的经纬度,lng2和lat2是GCJ-02坐标系下的经纬度。

      三、cnstock命令
      前一段时间有用户使用cnstock命令获取A股上市公司股票代码和公司简称时遇到了如下的报错信息:

    image

      出现这个报错的原因是cnstock命令的数据来源网页发生了变化,之前ado文件里面的源代码读入和拆分的程序都不能正常执行。我们更新了这个命令中读入源代码的程序,并通过mata对源代码进行拆分处理,保证了命令的正常执行,并提高了执行速度。大家可以通过ssc install cnstock, replace更新这个命令。

      四、subinfile命令
      修复了部分用户提到的在encoding()选项中设置编码为gb18030仍然提示“invalid encoding”的问题。大家更新了命令后如果仍然存在类似的问题,请检查Stata安装路径中是否存在中文字符,如有中文字符,需要卸载重新安装。

      感谢大家一直以来对我们团队的支持,我们将会继续努力,为大家传播技术,开发出越来越多实用的Stata命令。大家在使用我们团队开发的命令时如果遇到问题,也可以在后台留言或者发邮件到团队的邮箱。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/tsfmgktx.html