Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ask for splitting this chinese str

    I have one variable rural and i want to divide it into the following columns,how to write command?
    rural a b c
    青龙满族自治县木头凳镇邱丈子村三队 青龙满族自治县 木头凳镇 邱丈子村
    青龙满族自治县木头凳镇邱杖子村 青龙满族自治县 木头凳镇 邱丈子村
    青龙满族自治县隔河头乡草场村 青龙满族自治县 隔河头乡 草场村
    靖远县东升乡柴辛村二队 靖远县 东升乡 柴辛村
    靖远县五合乡白塔村 靖远县 五合乡 白塔村
    靖远县北滩乡刘梁村 靖远县 北滩乡 刘梁村
    the data sample is follow:
    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str51 rural
    "青龙满族自治县木头凳镇邱丈子村三队"
    "青龙满族自治县木头凳镇邱杖子村"
    "青龙满族自治县隔河头乡草场村"  
    "靖远县东升乡柴辛村二队"                  
    "靖远县五合乡白塔村"                  
    "靖远县北滩乡刘梁村"                  
    end
    Last edited by huhu bao; 13 Mar 2020, 06:29.

  • #2
    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str51 rural
    "青龙满族自治县木头凳镇邱丈子村三队"
    "青龙满族自治县木头凳镇邱杖子村"      
    "青龙满族自治县隔河头乡草场村"         
    "靖远县东升乡柴辛村二队"                  
    "靖远县五合乡白塔村"                        
    "靖远县北滩乡刘梁村"                        
    end
    
    local i=1
    foreach l in 县 镇 村 乡{
          gen p`i'=strpos(rural,"`l'")
          local ++i
    }
    gen a= substr(rural, 1, p1-1) + "县"
    gen which= regexm(rural,"镇")
    gen b= cond(which, substr(subinstr(rural, a, "", .), 1, p2-p1), substr(subinstr(rural, a, "", .), 1, p4-p1))
    gen c= cond(which, substr(subinstr(rural, a+b, "", .), 1, p3-p2), substr(subinstr(rural, a+b, "", .), 1, p3-p4))
    Res.:

    Code:
    . l rural a b c, sep(6)
    
         +---------------------------------------------------------------------------+
         |                              rural                a          b          c |
         |---------------------------------------------------------------------------|
      1. | 青龙满族自治县木头凳镇邱丈子村三队   青龙满族自治县   木头凳镇   邱丈子村 |
      2. |     青龙满族自治县木头凳镇邱杖子村   青龙满族自治县   木头凳镇   邱杖子村 |
      3. |       青龙满族自治县隔河头乡草场村   青龙满族自治县   隔河头乡     草场村 |
      4. |             靖远县东升乡柴辛村二队           靖远县     东升乡     柴辛村 |
      5. |                 靖远县五合乡白塔村           靖远县     五合乡     白塔村 |
      6. |                 靖远县北滩乡刘梁村           靖远县     北滩乡     刘梁村 |
         +---------------------------------------------------------------------------+

    Comment


    • #3
      Andrew Musau,thank you very much!it works well!

      Comment

      Working...
      X