从地址中消除所有数字

时间:2018-11-30 18:18:47

标签: stata

我有一个包含纽约地址的数据集:

       8296 Indian Spring St. Hempstead, NY 11550  
            498 Elizabeth St. Bay Shore, NY 11706  
                    30 Willow St. Bronx, NY 10461  
              65 Talbot Street New York, NY 10028  
               29 Franklin Rd. New York, NY 10034  
         21 East Gates St. Poughkeepsie, NY 12603  
          26 Wintergreen Ave. Patchogue, NY 11772  
  42 E. Plymouth Street Jackson Heights, NY 11372  
                 7887 York Rd. Brooklyn, NY 11221  
             597 St Paul Drive Brooklyn, NY 11236  
      83 SW. Ridgeview Rd. Far Rockaway, NY 11691  
              8447 W. Rose Street Bronx, NY 10472    
         47 N. Carriage Drive Rego Park, NY 11374  
   7953 Rock Maple Street Staten Island, NY 10312  
        7875 East Brook Avenue New York, NY 10024  
        362 Elizabeth St. Staten Island, NY 10314  
7043 South Sleepy Hollow Street Astoria, NY 11106  
               473 Marshall Court Bronx, NY 10457  
               9283 Albany St. Brooklyn, NY 11209  

如何使用Stata删除每个地址中的所有数字?

1 个答案:

答案 0 :(得分:4)

使用示例数据:

clear

input str50 ny_address
"8296 Indian Spring St. Hempstead, NY 11550"
"498 Elizabeth St. Bay Shore, NY 11706"
"30 Willow St. Bronx, NY 10461"
"65 Talbot Street New York, NY 10028"
"29 Franklin Rd. New York, NY 10034"
"21 East Gates St. Poughkeepsie, NY 12603"
"26 Wintergreen Ave. Patchogue, NY 11772"
"42 E. Plymouth Street Jackson Heights, NY 11372"
"7887 York Rd. Brooklyn, NY 11221"
"597 St Paul Drive Brooklyn, NY 11236"
"83 SW. Ridgeview Rd. Far Rockaway, NY 11691"
"8447 W. Rose Street Bronx, NY 10472"
"47 N. Carriage Drive Rego Park, NY 11374"
"7953 Rock Maple Street Staten Island, NY 10312"
"7875 East Brook Avenue New York, NY 10024"
"362 Elizabeth St. Staten Island, NY 10314"
"7043 South Sleepy Hollow Street Astoria, NY 11106"
"473 Marshall Court Bronx, NY 10457"
"9283 Albany St. Brooklyn, NY 11209"
end

如果为egen命令安装具有附加功能的软件包:

ssc install egenmore

您可以简单地执行以下操作:

egen wanted1 = sieve(ny_address), omit(0123456789)

否则,一个简单的正则表达式就可以解决问题:

generate wanted2 = strtrim(ustrregexs(0)) if ustrregexm(ny_address, "([a-zA-Z., ])+")

两种方法都能产生所需的输出:

list wanted1 wanted2

     +-----------------------------------------------------------------------------------+
     |                                  wanted1                                  wanted2 |
     |-----------------------------------------------------------------------------------|
  1. |         Indian Spring St. Hempstead, NY           Indian Spring St. Hempstead, NY |
  2. |             Elizabeth St. Bay Shore, NY               Elizabeth St. Bay Shore, NY |
  3. |                    Willow St. Bronx, NY                      Willow St. Bronx, NY |
  4. |              Talbot Street New York, NY                Talbot Street New York, NY |
  5. |               Franklin Rd. New York, NY                 Franklin Rd. New York, NY |
  6. |         East Gates St. Poughkeepsie, NY           East Gates St. Poughkeepsie, NY |
  7. |          Wintergreen Ave. Patchogue, NY            Wintergreen Ave. Patchogue, NY |
  8. |  E. Plymouth Street Jackson Heights, NY    E. Plymouth Street Jackson Heights, NY |
  9. |                   York Rd. Brooklyn, NY                     York Rd. Brooklyn, NY |
 10. |              St Paul Drive Brooklyn, NY                St Paul Drive Brooklyn, NY |
 11. |      SW. Ridgeview Rd. Far Rockaway, NY        SW. Ridgeview Rd. Far Rockaway, NY |
 12. |                W. Rose Street Bronx, NY                  W. Rose Street Bronx, NY |
 13. |         N. Carriage Drive Rego Park, NY           N. Carriage Drive Rego Park, NY |
 14. |     Rock Maple Street Staten Island, NY       Rock Maple Street Staten Island, NY |
 15. |          East Brook Avenue New York, NY            East Brook Avenue New York, NY |
 16. |         Elizabeth St. Staten Island, NY           Elizabeth St. Staten Island, NY |
 17. |  South Sleepy Hollow Street Astoria, NY    South Sleepy Hollow Street Astoria, NY |
 18. |                Marshall Court Bronx, NY                  Marshall Court Bronx, NY |
 19. |                 Albany St. Brooklyn, NY                   Albany St. Brooklyn, NY |
     +-----------------------------------------------------------------------------------+