cngcode和cnaddress新鲜出炉!
本文作者:宁刘莹
文字编辑:朱巧利
技术总编:薛 原
爬虫俱乐部将于2020年1月5日至11日在湖北武汉举行为期一周的Stata编程技术定制培训,此次采取初级班和高级班分批次培训。课程通过案例教学模式,旨在帮助大家在短期内掌握Stata软件编程、金融计量知识和实证分析方法,使大家熟悉Stata核心的爬虫技术,以及Stata与其他软件交互的高端技术。目前正在火热招生中~详细培训大纲及报名方式,请点击《爬虫俱乐部2020第一期Stata编程训练营开始报名啦!》或点击文末阅读原文呦~
ssc install cngcode
安装完毕之后可以通过help来查看语法和用法,其语法如下:
cngcode, baidukey(string) [options]
cnaddress, baidukey(string) lat(varname) long(varname) [options]
2、 申请密钥
注:我们在help文件中用“your secret key”代替密钥,是无法直接运行的,仅是说明如何定义baidukey这个选项。
申请到了密钥之后,就可以开始提取经纬度的操作了。
3、 定义地址
定义地址有两种方式,一种是通过定义cngcode的province、city、district、address等选项,获得一个省、市、区、地址的组合,并以此来提取经纬度。例如:
clear all
input str10 country str10 prov str10 city str10 dist str60 addrstr100 fullad
"中国" "湖北省" "武汉市" "" "南湖大道中南财经政法大学" "中国湖北省武汉市南湖大道中南财经政法大学"
"中国" "湖北省" "" "" "武汉大学" "中国湖北省武汉大学"
"中国" """北京市" "海淀区" "北京大学" "中国北京市海淀区北京大学"
"中国" "广东省" "深圳市" "罗湖区" "深南东路5047号" "中国广东省深圳市罗湖区深南东路5047号"
"中国" "浙江省" "东阳市" "" "浙江花园生物高科股份有限公司" "中国浙江省东阳市浙江花园生物高科股份有限公司"
"中国" """上海市" "嘉定区" "育绿路253号" "中国上海市嘉定区育绿路253号"
end
cngcode, baidukey(your secret key) province(prov) city(city)district(dist) address(addr) coordtype(bd09ll)
list
除此之外,我们还可以通过cngcode的fulladdress选项来定义地址,即定义一个完整的地址。由于我们已经在内存里输入了完整的地址,因此直接在选项内填入完整地址的变量名即可:
cngcode, baidukey(your secret key) fulladdress(fullad) coordtype(bd09ll)
list
4、 反向转换
keep longitude latitude
cnaddress, baidukey(40prmtviIT72hPZLGKktyBjVXxUOGDAx) lat(latitude) long(longitude) coordtype(bd09ll)
list
keep country province city district street address
cngcode, baidukey(40prmtviIT72hPZLGKktyBjVXxUOGDAx) province(prov) city(city) district(dist) address(addr) coordtype(bd09ll)
list
图1:第一次使用cngcode得到的经纬度
图2:第二次使用cngcode得到的经纬度
给你一个贴心的reshape应用
关于我们
微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。