请选择 进入手机版 | 继续访问电脑版
楼主: 狮子坟沉淀
4338 10

[编程问题求助] 如何提取变量中某一个值的序号? [推广有奖]

  • 8关注
  • 9粉丝

讲师

3%

还不是VIP/贵宾

-

威望
0
论坛币
17744 个
通用积分
120.3407
学术水平
27 点
热心指数
28 点
信用等级
25 点
经验
4962 点
帖子
80
精华
0
在线时间
690 小时
注册时间
2014-4-7
最后登录
2023-11-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
例如,我想提取 citytype=1 时的序号,那么提取出来的结果是1,2,3,4,6,9,10
请问如何把这些序号提取出来呢?

  1. clear
  2. input double(n citytype)
  3. 1 1
  4. 2 1
  5. 3 1
  6. 4 1
  7. 5 4
  8. 6 1
  9. 7 3
  10. 8 2
  11. 9 1
  12. 10 1
  13. end
复制代码


二维码

扫码加我 拉你入群

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

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

关键词:如何提取 double Input type City stata

回帖推荐

伟轩 发表于6楼  查看完整内容

黃河泉 在职认证  发表于 2018-8-17 07:24:28 |显示全部楼层 |坛友微信交流群
试试
  1. keep if citytype == 1
复制代码

使用道具

黃河泉 发表于 2018-8-17 07:24
试试
谢谢黄老师,但是我是想抓取出变量等于某一值时对应的序号集合,但是由于还需要对改变量其它值进行处理,所以不能把其他值删了

使用道具

黃河泉 在职认证  发表于 2018-8-17 08:21:16 |显示全部楼层 |坛友微信交流群
狮子坟沉淀 发表于 2018-8-17 08:12
谢谢黄老师,但是我是想抓取出变量等于某一值时对应的序号集合,但是由于还需要对改变量其它值进行处理, ...
老实说,第一时间就看不太懂你的意思 (如何把这些序号提取出来呢,是什么意思?),现在还是一样!请重新说明与举例。

使用道具

黃河泉 发表于 2018-8-17 08:21
老实说,第一时间就看不太懂你的意思 (如何把这些序号提取出来呢,是什么意思?),现在还是一样!请重新说 ...
谢谢老师,我现在有各地的经纬度,想计算所有城市(共283个)到citytype==3城市(不止一个)距离的最小值
  1. clear
  2. input double(latitude longitude citytype)
  3. 26.25656499  105.944226 1
  4. 26.89682499   112.56657 2
  5. 27.83265099  112.938664 2
  6. 28.26326301  117.063832 1
  7. 32.12502099  114.062773 2
  8. 25.77440001    113.0111 2
  9. 28.23155799  112.933463 3
  10. 28.93892703  118.869413 1
  11. 25.83248997   114.92904 2
  12. 26.64451107 118.1729381 1
  13. 32.39457201  119.398399 3
  14. 33.76798701  113.186252 2
  15. 42.01945899  121.664975 2
  16.    37.85619  113.574147 2
  17.   35.027124  111.001486 1
  18. end
复制代码
我现在的做法很粗暴,是直接把citytype=3城市的序号数出来,然后
  1. local numlist "5,35,38,70,99,167,248" //citytype=3,城市的序号
  2. forvalues i = 1/283{
  3.     foreach j of num `numlist' {
  4.         local lat_city = latitude[`i']
  5.         local lon_city = longitude[`i']
  6.         local lat_mega = latitude[`j']
  7.         local lon_mega = longitude[`j']
  8.         geodist `lat_city' `lon_city' `lat_mega' `lon_mega'
  9.         local dis_`i'_`j' = r(distance)
  10.     }
  11.     local mindis = min(`dis_`i'_5',`dis_`i'_35',`dis_`i'_38',`dis_`i'_70', ///
  12.                                                 `dis_`i'_99',`dis_`i'_167',`dis_`i'_248')
  13.         replace mindis = `mindis' in `i'
  14. }
复制代码
所以想请教是否有优化的手段

使用道具

伟轩 发表于 2018-8-21 08:47:58 |显示全部楼层 |坛友微信交流群
  1. levelsof n if citytype == 1,local(city_num)
  2. foreach num of local city_num{
  3.       ......
  4. }
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
sakiny136 + 2 + 2 + 2 精彩帖子

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

黃河泉 在职认证  发表于 2018-8-21 08:56:38 |显示全部楼层 |坛友微信交流群
狮子坟沉淀 发表于 2018-8-17 08:38
谢谢老师,我现在有各地的经纬度,想计算所有城市(共283个)到citytype==3城市(不止一个)距离的最小值 ...
我对空间计量方面不熟,我初步的猜测是用类似 joinby 之指令,然后计算并找出最短距离!

使用道具

伟轩 发表于 2018-8-21 08:47
正是我想要的!!太感谢啦

使用道具

黃河泉 发表于 2018-8-21 08:56
我对空间计量方面不熟,我初步的猜测是用类似 joinby 之指令,然后计算并找出最短距离!
谢谢黄老师,@伟轩的回答可以解决这个问题

使用道具

黃河泉 在职认证  发表于 2018-8-21 11:04:27 |显示全部楼层 |坛友微信交流群
狮子坟沉淀 发表于 2018-8-21 10:48
谢谢黄老师,@伟轩的回答可以解决这个问题
Great to hear that.

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 09:15