楼主: 黃河泉
2368 9

[程序分享] 分离地址 (县 镇 村 乡) [推广有奖]

大师

53%

还不是VIP/贵宾

-

威望
3
论坛币
34049 个
通用积分
56695.6076
学术水平
3551 点
热心指数
3712 点
信用等级
2932 点
经验
308898 点
帖子
14545
精华
12
在线时间
7426 小时
注册时间
2016-7-9
最后登录
2025-12-9

楼主
黃河泉 在职认证  发表于 2020-3-14 11:27:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
刚刚在此 https://www.statalist.org/forums ... ng-this-chinese-str 看到一个分离中文地址之应用,与大家方享。资料为
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str51 rural
  4. "青龙满族自治县木头凳镇邱丈子村三队"
  5. "青龙满族自治县木头凳镇邱杖子村"      
  6. "青龙满族自治县隔河头乡草场村"         
  7. "靖远县东升乡柴辛村二队"                  
  8. "靖远县五合乡白塔村"                        
  9. "靖远县北滩乡刘梁村"                        
  10. end
复制代码
Andrew Musau 建议:
  1. local i=1
  2. foreach l in 县 镇 村 乡{
  3.         gen p`i'=strpos(rural,"`l'")
  4.         local ++i
  5. }
  6. gen a = substr(rural, 1, p1-1) + "县"
  7. gen which = regexm(rural,"镇")
  8. gen b = cond(which, substr(subinstr(rural, a, "", .), 1, p2-p1), substr(subinstr(rural, a, "", .), 1, p4-p1))
  9. gen c = cond(which, substr(subinstr(rural, a+b, "", .), 1, p3-p2), substr(subinstr(rural, a+b, "", .), 1, p3-p4))
  10. list rural a b c, sep(6)
复制代码
结果为: sa.png
二维码

扫码加我 拉你入群

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

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


回帖推荐

songking 发表于10楼  查看完整内容

如果是这种格式的地址的话,其实有更简单直观的处理方法: forvalues i=1/3{ gen a`i'="" replace a`i' =ustrregexs(`i') if ustrregexm(rural,"(.+\县)(.+\乡)(.+\村)") replace a`i' =ustrregexs(`i') if ustrregexm(rural,"(.+\县)(.+\镇)(.+\村)") }
已有 4 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
葫芦娃大王 + 10 + 10 + 2 + 2 精彩帖子
Sunknownay + 3 + 3 + 3 精彩帖子
震震果实 + 4 + 4 + 4 + 4 精彩帖子
crystal8832 + 50 + 2 + 2 + 2 精彩帖子

总评分: 经验 + 10  论坛币 + 64  学术水平 + 11  热心指数 + 11  信用等级 + 9   查看全部评分

沙发
cyllwt 学生认证  发表于 2020-3-14 22:45:55
很实用很实用

藤椅
lonestone 在职认证  发表于 2020-3-15 08:47:17 来自手机
黃河泉 发表于 2020-3-14 11:27
刚刚在此 https://www.statalist.org/forums/forum/general-stata-discussion/general/1541156-ask-for-spl ...
谢谢楼主的分享

板凳
葫芦娃大王 学生认证  发表于 2020-3-15 15:42:42
微信截图_20200315154147.png 为什么会出现这样的情况呢?

报纸
黃河泉 在职认证  发表于 2020-3-15 16:03:57
葫芦娃大王 发表于 2020-3-15 15:42
为什么会出现这样的情况呢?
不要用 "复制代码" (这个功能有问题,请版主反应一下,谢谢),自己人工复制,再试试看!
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
葫芦娃大王 + 10 + 10 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

地板
yuqr1986 学生认证  发表于 2020-3-16 19:17:47
谢谢黄老师分享

7
葫芦娃大王 学生认证  发表于 2020-3-17 21:16:15
黃河泉 发表于 2020-3-15 16:03
不要用 "复制代码" (这个功能有问题,请版主反应一下,谢谢),自己人工复制,再试试看!
好的,谢谢黄老师

8
静心品茶 发表于 2020-3-18 20:54:51
谢谢黄老师分享

9
只争朝夕! 发表于 2020-5-17 10:07:19 来自手机
黃河泉 发表于 2020-3-14 11:27
刚刚在此 https://www.statalist.org/forums/forum/general-stata-discussion/general/1541156-ask-for-spl ...
谢谢大师

10
songking 发表于 2020-5-19 20:21:11
如果是这种格式的地址的话,其实有更简单直观的处理方法:
forvalues i=1/3{
gen a`i'=""
replace a`i' =ustrregexs(`i')  if ustrregexm(rural,"(.+\县)(.+\乡)(.+\村)")
replace a`i' =ustrregexs(`i')  if ustrregexm(rural,"(.+\县)(.+\镇)(.+\村)")
}
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
黃河泉 + 5 + 5 + 5 精彩帖子

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

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-17 07:17