Announcement

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

  • Editing a string variable

    My data shown below, has county names with the state abbreviations after it. I would just like to retain the county name. But the problem is that some county names do not have state abbreviations and so I cannot just delete the last two letters of the string. Some counties also have "(N)" after the county name. Is there a way to be able to delete the last two letters at the end of a string but only if there are two letters and also delete (N) if that is at the end of the string?

    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input long county byte state long place str5 zcta str2 stab str34 countyname str61 placename str52 zipname long pop20 byte afact
    1001 1  3220 "36003" "AL" "Autauga AL" "Autaugaville town, AL"     "Autaugaville, AL"              784 1
    1001 1  3220 "36067" "AL" "Autauga AL" "Autaugaville town, AL"     "Prattville, AL"                 11 1
    1001 1  6460 "36006" "AL" "Autauga AL" "Billingsley town, AL"      "Billingsley, AL"               125 1
    1001 1 46600 "36022" "AL" "Autauga AL" "Marbury CDP, AL"           "Deatsville, AL"                560 1
    1001 1 46600 "36051" "AL" "Autauga AL" "Marbury CDP, AL"           "Marbury, AL"                   867 1
    1001 1 48712 "36022" "AL" "Autauga AL" "Millbrook city, AL"        "Deatsville, AL"                403 1
    1001 1 60264 "36022" "AL" "Autauga AL" "Pine Level CDP, AL"        "Deatsville, AL"               3073 1
    1001 1 60264 "36066" "AL" "Autauga AL" "Pine Level CDP, AL"        "Prattville, AL"                675 1
    1001 1 60264 "36067" "AL" "Autauga AL" "Pine Level CDP, AL"        "Prattville, AL"               1137 1
    1001 1 62328 "36066" "AL" "Autauga AL" "Prattville city, AL"       "Prattville, AL"              19275 1
    1001 1 62328 "36067" "AL" "Autauga AL" "Prattville city, AL"       "Prattville, AL"              16623 1
    1001 1 99999 "36003" "AL" "Autauga AL" "[not in a place]"          "Autaugaville, AL"              996 1
    1001 1 99999 "36006" "AL" "Autauga AL" "[not in a place]"          "Billingsley, AL"               851 1
    1001 1 99999 "36008" "AL" "Autauga AL" "[not in a place]"          "Booth, AL (PO Boxes)"           47 1
    1001 1 99999 "36022" "AL" "Autauga AL" "[not in a place]"          "Deatsville, AL"               1130 1
    1001 1 99999 "36051" "AL" "Autauga AL" "[not in a place]"          "Marbury, AL"                   726 1
    1001 1 99999 "36066" "AL" "Autauga AL" "[not in a place]"          "Prattville, AL"                358 1
    1001 1 99999 "36067" "AL" "Autauga AL" "[not in a place]"          "Prattville, AL"               9763 1
    1001 1 99999 "36091" "AL" "Autauga AL" "[not in a place]"          "Verbena, AL"                   387 1
    1001 1 99999 "36703" "AL" "Autauga AL" "[not in a place]"          "Selma, AL"                     165 1
    1001 1 99999 "36749" "AL" "Autauga AL" "[not in a place]"          "Jones, AL"                     636 1
    1001 1 99999 "36758" "AL" "Autauga AL" "[not in a place]"          "Plantersville, AL"             213 1
    1003 1  4660 "36507" "AL" "Baldwin AL" "Bay Minette city, AL"      "Bay Minette, AL"              8107 1
    1003 1  8272 "36511" "AL" "Baldwin AL" "Bon Secour CDP, AL"        "Bon Secour, AL"                533 1
    1003 1  8272 "36535" "AL" "Baldwin AL" "Bon Secour CDP, AL"        "Foley, AL"                    1221 1
    1003 1 19648 "36526" "AL" "Baldwin AL" "Daphne city, AL"           "Daphne, AL"                  25429 1
    1003 1 19648 "36527" "AL" "Baldwin AL" "Daphne city, AL"           "Spanish Fort, AL"             2033 1
    1003 1 23320 "36530" "AL" "Baldwin AL" "Elberta town, AL"          "Elberta, AL"                  1974 1
    1003 1 25240 "36526" "AL" "Baldwin AL" "Fairhope city, AL"         "Daphne, AL"                      6 1
    1003 1 25240 "36532" "AL" "Baldwin AL" "Fairhope city, AL"         "Fairhope, AL"                22414 1
    1003 1 25240 "36559" "AL" "Baldwin AL" "Fairhope city, AL"         "Montrose, AL (PO Boxes)"        57 1
    1003 1 26992 "36530" "AL" "Baldwin AL" "Foley city, AL"            "Elberta, AL"                   201 1
    1003 1 26992 "36535" "AL" "Baldwin AL" "Foley city, AL"            "Foley, AL"                   20107 1
    1003 1 26992 "36542" "AL" "Baldwin AL" "Foley city, AL"            "Gulf Shores, AL"                15 1
    1003 1 26992 "36580" "AL" "Baldwin AL" "Foley city, AL"            "Summerdale, AL"                 12 1
    1003 1 32272 "36535" "AL" "Baldwin AL" "Gulf Shores city, AL"      "Foley, AL"                       6 1
    1003 1 32272 "36542" "AL" "Baldwin AL" "Gulf Shores city, AL"      "Gulf Shores, AL"             15000 1
    1003 1 32272 "36561" "AL" "Baldwin AL" "Gulf Shores city, AL"      "Orange Beach, AL"                8 1
    1003 1 42928 "36549" "AL" "Baldwin AL" "Lillian CDP, AL"           "Lillian, AL"                  1330 1
    1003 1 44608 "36527" "AL" "Baldwin AL" "Loxley town, AL"           "Spanish Fort, AL"             1204 1
    1003 1 44608 "36551" "AL" "Baldwin AL" "Loxley town, AL"           "Loxley, AL"                   2455 1
    1003 1 44608 "36567" "AL" "Baldwin AL" "Loxley town, AL"           "Robertsdale, AL"                35 1
    1003 1 44608 "36578" "AL" "Baldwin AL" "Loxley town, AL"           "Stapleton, AL (PO Boxes)"       16 1
    1003 1 46072 "36535" "AL" "Baldwin AL" "Magnolia Springs town, AL" "Foley, AL"                      25 1
    1003 1 46072 "36555" "AL" "Baldwin AL" "Magnolia Springs town, AL" "Magnolia Springs, AL"          786 1
    1003 1 57144 "36530" "AL" "Baldwin AL" "Orange Beach city, AL"     "Elberta, AL"                    98 1
    1003 1 57144 "36561" "AL" "Baldwin AL" "Orange Beach city, AL"     "Orange Beach, AL"             7997 1
    1003 1 59064 "36562" "AL" "Baldwin AL" "Perdido CDP, AL"           "Perdido, AL"                   730 1
    1003 1 59088 "36530" "AL" "Baldwin AL" "Perdido Beach town, AL"    "Elberta, AL"                   555 1
    1003 1 61488 "36532" "AL" "Baldwin AL" "Point Clear CDP, AL"       "Fairhope, AL"                 2061 1
    1003 1 61488 "36564" "AL" "Baldwin AL" "Point Clear CDP, AL"       "Point Clear, AL"                15 1
    1003 1 65208 "36567" "AL" "Baldwin AL" "Robertsdale city, AL"      "Robertsdale, AL"              6566 1
    1003 1 65208 "36576" "AL" "Baldwin AL" "Robertsdale city, AL"      "Silverhill, AL"                142 1
    1003 1 70536 "36576" "AL" "Baldwin AL" "Silverhill town, AL"       "Silverhill, AL"                768 1
    1003 1 71976 "36507" "AL" "Baldwin AL" "Spanish Fort city, AL"     "Bay Minette, AL"                72 1
    1003 1 71976 "36527" "AL" "Baldwin AL" "Spanish Fort city, AL"     "Spanish Fort, AL"             9977 1
    1003 1 72816 "36507" "AL" "Baldwin AL" "Stapleton CDP, AL"         "Bay Minette, AL"                55 1
    1003 1 72816 "36527" "AL" "Baldwin AL" "Stapleton CDP, AL"         "Spanish Fort, AL"              221 1
    1003 1 72816 "36551" "AL" "Baldwin AL" "Stapleton CDP, AL"         "Loxley, AL"                     41 1
    1003 1 72816 "36578" "AL" "Baldwin AL" "Stapleton CDP, AL"         "Stapleton, AL (PO Boxes)"     1896 1
    1003 1 73272 "36507" "AL" "Baldwin AL" "Stockton CDP, AL"          "Bay Minette, AL"               145 1
    1003 1 73272 "36579" "AL" "Baldwin AL" "Stockton CDP, AL"          "Stockton, AL"                  412 1
    1003 1 73872 "36535" "AL" "Baldwin AL" "Summerdale town, AL"       "Foley, AL"                     149 1
    1003 1 73872 "36580" "AL" "Baldwin AL" "Summerdale town, AL"       "Summerdale, AL"               1319 1
    1003 1 99999 "36502" "AL" "Baldwin AL" "[not in a place]"          "Atmore, AL"                    303 1
    1003 1 99999 "36507" "AL" "Baldwin AL" "[not in a place]"          "Bay Minette, AL"             11229 1
    1003 1 99999 "36511" "AL" "Baldwin AL" "[not in a place]"          "Bon Secour, AL"                170 1
    1003 1 99999 "36526" "AL" "Baldwin AL" "[not in a place]"          "Daphne, AL"                  10285 1
    1003 1 99999 "36527" "AL" "Baldwin AL" "[not in a place]"          "Spanish Fort, AL"             4599 1
    1003 1 99999 "36530" "AL" "Baldwin AL" "[not in a place]"          "Elberta, AL"                  5547 1
    1003 1 99999 "36532" "AL" "Baldwin AL" "[not in a place]"          "Fairhope, AL"                12443 1
    1003 1 99999 "36535" "AL" "Baldwin AL" "[not in a place]"          "Foley, AL"                   13976 1
    1003 1 99999 "36542" "AL" "Baldwin AL" "[not in a place]"          "Gulf Shores, AL"              1978 1
    1003 1 99999 "36549" "AL" "Baldwin AL" "[not in a place]"          "Lillian, AL"                  4135 1
    1003 1 99999 "36550" "AL" "Baldwin AL" "[not in a place]"          "Little River, AL (PO Boxes)"   199 1
    1003 1 99999 "36551" "AL" "Baldwin AL" "[not in a place]"          "Loxley, AL"                   8018 1
    1003 1 99999 "36555" "AL" "Baldwin AL" "[not in a place]"          "Magnolia Springs, AL"           43 1
    1003 1 99999 "36559" "AL" "Baldwin AL" "[not in a place]"          "Montrose, AL (PO Boxes)"       191 1
    1003 1 99999 "36561" "AL" "Baldwin AL" "[not in a place]"          "Orange Beach, AL"             1141 1
    1003 1 99999 "36562" "AL" "Baldwin AL" "[not in a place]"          "Perdido, AL"                   923 1
    1003 1 99999 "36567" "AL" "Baldwin AL" "[not in a place]"          "Robertsdale, AL"              8019 1
    1003 1 99999 "36574" "AL" "Baldwin AL" "[not in a place]"          "Seminole, AL"                 1614 1
    1003 1 99999 "36576" "AL" "Baldwin AL" "[not in a place]"          "Silverhill, AL"               4318 1
    1003 1 99999 "36578" "AL" "Baldwin AL" "[not in a place]"          "Stapleton, AL (PO Boxes)"      130 1
    1003 1 99999 "36579" "AL" "Baldwin AL" "[not in a place]"          "Stockton, AL"                  981 1
    1003 1 99999 "36580" "AL" "Baldwin AL" "[not in a place]"          "Summerdale, AL"               5332 1
    1005 1  3724 "36027" "AL" "Barbour AL" "Bakerhill town, AL"        "Eufaula, AL"                   211 1
    1005 1  7672 "36017" "AL" "Barbour AL" "Blue Springs town, AL"     "Clio, AL"                       79 1
    1005 1  7672 "36374" "AL" "Barbour AL" "Blue Springs town, AL"     "Skipperville, AL"                5 1
    1005 1 15376 "36016" "AL" "Barbour AL" "Clayton town, AL"          "Clayton, AL"                  2265 1
    1005 1 15640 "36017" "AL" "Barbour AL" "Clio city, AL"             "Clio, AL"                     1220 1
    1005 1 24568 "36016" "AL" "Barbour AL" "Eufaula city, AL"          "Clayton, AL"                   212 1
    1005 1 24568 "36027" "AL" "Barbour AL" "Eufaula city, AL"          "Eufaula, AL"                 12670 1
    1005 1 44344 "36048" "AL" "Barbour AL" "Louisville town, AL"       "Louisville, AL"                395 1
    1005 1 99999 "36005" "AL" "Barbour AL" "[not in a place]"          "Banks, AL"                      13 1
    1005 1 99999 "36016" "AL" "Barbour AL" "[not in a place]"          "Clayton, AL"                  1582 1
    1005 1 99999 "36017" "AL" "Barbour AL" "[not in a place]"          "Clio, AL"                     1752 1
    1005 1 99999 "36027" "AL" "Barbour AL" "[not in a place]"          "Eufaula, AL"                  2647 1
    1005 1 99999 "36048" "AL" "Barbour AL" "[not in a place]"          "Louisville, AL"                785 1
    1005 1 99999 "36053" "AL" "Barbour AL" "[not in a place]"          "Midway, AL"                    637 1
    end

  • #2
    I think it would be fairly safe to go

    Code:
    replace countyname = substr(countyname, 1, length(countyname) - 3) if inlist(substr(countryname, -3, 3), " " + countyname, "(N)") 
    but if in any doubt use clonevar and experiment with a clone.

    Comment


    • #3
      Another alternative with regular expressions:

      Code:
      gen wanted= ustrregexra(countyname, "(.*\s)(\w{2}|N)$", "$1")
      Assumes that there is a space that precedes "N" if the string ends with this letter.

      Comment


      • #4
        Thanks so much Nick! That worked well deleting (N) at the end of the strings but did not take away state abbreviations.

        Comment


        • #5
          Thanks Andrew that worked great! Just going to modify so that it deletes the "(N)" at the end of the string as well

          Comment

          Working...
          X