Announcement

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

  • Unable to remove part of a string using strrpos ()

    Hello Stata users,

    I am using Stata/IC 15.1 and would like to remove the part of the first string variable that occurs after the second M in the string.

    I used the following sequence of commands. However, when I get to the fourth command it only removes the latter part of the string for participants from Oromia but not SNNPR. I would like help with removing the latter part of the string after the second M for the participants of SNNPR as well. (Including data example)

    Thank you,


    rename A UID

    replace UID = subinstr(UID, "_","",.)

    replace UID = subinstr(UID, "GEM", "",.)

    replace UID = substr(UID,1, strrpos(UID,"M"))


    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str29 A str4 B str6 C
    "GEM_036_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_035_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_034_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_033_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_031_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_032_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_027_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_025_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_026_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_028_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_029_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_030_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_047_M25_ORO_17Nov2019-SE"  "Male" "Oromia"
    "GEM_046_M25_ORO_17Nov2019-SE"  "Male" "Oromia"
    "GEM_045_M25_ORO_17Nov2019-SE"  "Male" "Oromia"
    "GEM_037_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_038_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_039_M25_ORO_15Nov2019-SE"  "Male" "Oromia"
    "GEM_040_M25_ORO_17Nov2019-SE"  "Male" "Oromia"
    "GEM_044_M25_ORO_17Nov2019-SE"  "Male" "Oromia"
    "GEM_043_M25_ORO_17Nov2019-SE"  "Male" "Oromia"
    "GEM_042_M25_ORO_17Nov2019-SE"  "Male" "Oromia"
    "GEM_041_M25_ORO_17Nov2019-SE"  "Male" "Oromia"
    ""                              "Male" "Oromia"
    "GEM_010_M25_ORO_18Oct2019-SE"  "Male" "Oromia"
    "GEM_023_M15_ORO_22Oct2019-SE"  "Male" "Oromia"
    "GEM_024_M25_ORO_23Oct2019-SE"  "Male" "Oromia"
    "GEM_022_M25_ORO_22Oct2019-SE"  "Male" "Oromia"
    "GEM_021_M25_ORO_22Oct2019-SE"  "Male" "Oromia"
    "GEM_020_M25_ORO_22Oct2019-SE"  "Male" "Oromia"
    "GEM_019_M25_ORO_22Oct2019-SE"  "Male" "Oromia"
    "GEM_018_M25_ORO_21Oct2019-SE"  "Male" "Oromia"
    "GEM_017_M25_ORO_21Oct2019-SE"  "Male" "Oromia"
    "GEM_016_M25_ORO_21Oct2019-SE"  "Male" "Oromia"
    "GEM_009_M25_ORO_18Oct2019-SE"  "Male" "Oromia"
    "GEM_001_M25_ORO_17Oct2019-SE"  "Male" "Oromia"
    "GEM_002_M25_ORO_18Oct2019-SE"  "Male" "Oromia"
    "GEM_003_M25_ORO_18Oct2019-SE"  "Male" "Oromia"
    "GEM_004_M25_ORO_18Oct2019-SE"  "Male" "Oromia"
    "GEM_005_M25_ORO_18Oct2019-SE"  "Male" "Oromia"
    "GEM_006_M25_ORO_18Oct2019-SE"  "Male" "Oromia"
    "GEM_007_M25_ORO_18Oct2019-SE"  "Male" "Oromia"
    "GEM_008_M25_ORO_18Oct2019-SE"  "Male" "Oromia"
    "GEM_011_M25_ORO_21Oct2019-SE"  "Male" "Oromia"
    "GEM_012_M15_ORO_21Oct2019-SE"  "Male" "Oromia"
    "GEM_013_M15_ORO_21Oct2019-SE"  "Male" "Oromia"
    "GEM_014_M25_ORO_21Oct2019-SE"  "Male" "Oromia"
    "GEM_015_M15_ORO_21Oct2019-SE"  "Male" "Oromia"
    "GEM_017_M25_SNNP_17Oct2019-TM" "Male" "SNNPR" 
    "GEM_011_M25_SNNP_22Oct2019-TM" "Male" "SNNPR" 
    "GEM_010_M25_SNNP_21Oct2019-TM" "Male" "SNNPR" 
    "GEM_009_M25_SNNP_19Oct2019-TM" "Male" "SNNPR" 
    "GEM_008_M25_SNNP_19Oct2019-TM" "Male" "SNNPR" 
    "GEM_007_M25_SNNP_18Oct2019-TM" "Male" "SNNPR" 
    "GEM_006_M25_SNNP_18Oct2019-TM" "Male" "SNNPR" 
    "GEM_005_M25_SNNP_18Oct2019-TM" "Male" "SNNPR" 
    "GEM_004_M25_SNNP_17Oct2019-TM" "Male" "SNNPR" 
    "GEM_003_M15_SNNP_17Oct2019-TM" "Male" "SNNPR" 
    "GEM_002_M25_SNNP_17Oct2019-TM" "Male" "SNNPR" 
    "GEM_001_M25_SNNP_17Oct2019-TM" "Male" "SNNPR" 
    "GEM_023_M15_SNNP_23Oct2019-TM" "Male" "SNNPR" 
    "GEM_022_M25_SNNP_23Oct2019-TM" "Male" "SNNPR" 
    "GEM_021_M25_SNNP_23Oct2019-TM" "Male" "SNNPR" 
    "GEM_020_M25_SNNP_23Oct2019-TM" "Male" "SNNPR" 
    "GEM_019_M25_SNNP_23Oct2019-TM" "Male" "SNNPR" 
    "GEM_018_M15_SNNP_22Oct2019-TM" "Male" "SNNPR" 
    "GEM_016_M25_SNNP_22Oct2019-TM" "Male" "SNNPR" 
    "GEM_015_M25_SNNP_22Oct2019-TM" "Male" "SNNPR" 
    "GEM_014_M25_SNNP_22Oct2019-TM" "Male" "SNNPR" 
    "GEM_013_M25_SNNP_22Oct2019-TM" "Male" "SNNPR" 
    "GEM_012_M25_SNNP_22Oct2019-TM" "Male" "SNNPR" 
    "GEM_024_M25_SNNP_24Oct2019-TM" "Male" "SNNPR" 
    "GEM_036_M25_SNNP_25Oct2019-TM" "Male" "SNNPR" 
    "GEM_034_M25_SNNP_25Oct2019-TM" "Male" "SNNPR" 
    "GEM_035_M25_SNNP_25Oct2019-TM" "Male" "SNNPR" 
    "GEM_033_M25_SNNP_25Oct2019-TM" "Male" "SNNPR" 
    "GEM_032_M25_SNNP_25Oct2019-TM" "Male" "SNNPR" 
    "GEM_031_M25_SNNP_25Oct2019-TM" "Male" "SNNPR" 
    "GEM_030_M25_SNNP_25Oct2019-TM" "Male" "SNNPR" 
    "GEM_028_M25_SNNP_25Oct2019-TM" "Male" "SNNPR" 
    "GEM_029_M15_SNNP_25Oct2019-TM" "Male" "SNNPR" 
    "GEM_027_M25_SNNP_24Oct2019-TM" "Male" "SNNPR" 
    "GEM_025_M25_SNNP_24Oct2019-TM" "Male" "SNNPR" 
    "GEM_026_M25_SNNP_24Oct2019-TM" "Male" "SNNPR" 
    "GEM_041_M25_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    "GEM_048_M25_SNNP_30Oct2019-TM" "Male" "SNNPR" 
    "GEM_047_M25_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    "GEM_046_M25_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    "GEM_045_M15_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    "GEM_044_M25_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    "GEM_043_M15_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    "GEM_042_M25_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    "GEM_040_M25_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    "GEM_039_M25_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    "GEM_037_M25_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    "GEM_038_M25_SNNP_28Oct2019-TM" "Male" "SNNPR" 
    end

  • #2
    It looks like you need strpos instead of strrpos (small but important difference).

    Comment


    • #3
      Regular expressions will work well here as well.

      Code:
      rename A UID
      replace UID = subinstr(UID, "_","",.)
      gen wanted= ustrregexs(0) if ustrregexm(UID,"([0-9]{3})M")

      Comment


      • #4
        Ah! So simple. Thank you for your help!

        Comment

        Working...
        X