全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1408 6
2019-12-11
悬赏 100 个论坛币 已解决
两两距离提问.png
如图,前四列是已知变量,第一列城市ID,第二列纬度,第三列经度,第四列哑变量(Y),求第五列wanted。
问题:10个城市中,只要与哑变量为“1”城市的距离小于10km,那么wanted=1,否则wanted=0
我知道stata有一个命令globdist可以计算两个 坐标 的距离,
并且,levelsof array, local(var) sep(|) clean,可以生成一个类似于(var1|var2|var3|var4|var5|var6|var7|)的数组(array)
疑难1:首先想到做一个循环,可不知道如何在循环里,让stata把Y=1的城市单挑出来。
疑难2:我是将近100万条数据,大约十几万条城市Y=1,globdist会把计算出来的距离生产一个新变量,我循环中,stata放不下100多万个变量。疑难3:如何能返回是具体与哪个城市距离小于10km?
高手有没有直接的命令?非常感谢!



数据dta见附件,我也用dataex输出了(不知道为什么到带着格式,所以附件也加了dta)。

复制代码



globdist示例.dta
大小:(3.87 KB)

 马上下载






二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-12-11 15:10:53
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-12-13 09:13:05
我自己的顶一下,大佬有思路吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-12-13 09:31:07
我发布的现金项目,有思路的大佬,欢迎接项目:
https://bbs.pinggu.org/prj/view/25169.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-12-13 11:33:36
据我的理解,怎么用stata做,我不太清楚,但如果可以使用GIS的话,我有两条思路。
第一条思路:你的这个题目可以分解为两部,一是计算两个城市之间的距离,就是OD分析,二是判断这个距离的大小,从而返回值。
第二条思路:在所有Y=1的点建立10km缓冲区,然后判断不同cityid是否落在缓冲区内,在wanted为1,否为0.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-12-13 19:11:20
跑100万条,确实挺费时间的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群