2016-10-31 16 views
2

私はユニット/ハウスナンバー、ストリート名、地域、郵便番号、電話番号を組み合わせたアドレスを持つデータフレームにカラムを持っています。文字列内の少なくとも5桁の数字を置換する正規表現

郵便番号は4桁の番号です。ここで

は一例です:

"26A JULIA STREET ANYTOWN 8523 71245632"

私は電話番号を取り除くが、返すために郵便番号や他の番号を維持したい:

"26A JULIA STREET ANYTOWN 8523"

私は次のことを試してみました:

str_replace(string=field_name$ADDRESS, pattern="\\d{5,}", replacement="")

電話番号は削除されません。誰かが私が間違っているところを指摘することはできますか?

+1

もGSUBを使用することができます。 'gsub(" \\ s + \\ d {5、} "、"、mystring) ' - 先行スペースをクリアするための正規表現付き。 – Zach

+0

4つのポストコード番号が見つかるまで、すべてをキャプチャすることもできます。 'sub(" * \\ d {4}) "、" \\ 1 "、field_name $ ADDRESS)'を使用してください。これは、電話番号がない場合でも機能します。 –

+1

あなたのコードは、** hrbrmstr **によって提供された 'data.frame' – user2100721

答えて

3

私個人的にstringiパッケージの余分な詳細(とstringrはとにかくそれをラップ)のような:

library(stringi) 
library(magrittr) 

field_name <- data.frame(ADDRESS="26A JULIA STREET ANYTOWN 8523 71245632", stringsAsFactors=FALSE) 

stri_replace_last_regex(field_name$ADDRESS, "[[:digit:]]{5,}", "") %>% 
    stri_trim() 
## [1] "26A JULIA STREET ANYTOWN 8523" 
関連する問題