rm_zip(text.var, trim = !extract, clean = TRUE, pattern = "@rm_zip", replacement = "", extract = FALSE, dictionary = getOption("regex.library"), ...)
TRUE
removes leading and trailing white
spaces.TRUE
extra white spaces and escaped
character will be removed.fixed = TRUE
) to be matched in the given
character vector. Default, @rm_zip
uses the
rm_zip
regex from the regular expression dictionary from
the dictionary
argument.pattern
.TRUE
the zip codes are extracted into a
list of vectors.pattern
begins with "@rm_"
.gsub
.Remove/replace/extract zip codes from a string.
The time regular expression was taken from: http://stackoverflow.com/a/25223890/1000343
x <- c("Mr. Bean bought 2 tickets 2-613-213-4567", "43 Butter Rd, Brossard QC K0A 3P0 - 613 213 4567", "Rat Race, XX, 12345", "Ignore phone numbers(613)2134567", "Grab zips with dashes 12345-6789 or no space before12345-6789", "Grab zips with spaces 12345 6789 or no space before12345 6789", "I like 1234567 dogs" ) rm_zip(x)[1] "Mr. Bean bought 2 tickets 2-613-213-4567" "43 Butter Rd, Brossard QC K0A 3P0 - 613 213 4567" [3] "Rat Race, XX," "Ignore phone numbers(613)2134567" [5] "Grab zips with dashes or no space before" "Grab zips with spaces or no space before" [7] "I like 1234567 dogs"rm_zip(x, extract=TRUE)[[1]] [1] NA [[2]] [1] NA [[3]] [1] "12345" [[4]] [1] NA [[5]] [1] "12345-6789" "12345-6789" [[6]] [1] "12345 6789" "12345 6789" [[7]] [1] NA## ======================= ## ## BUILD YOUR OWN FUNCTION ## ## ======================= ## ## example from: http://stackoverflow.com/a/26092576/1000343 zips <- data.frame(id = seq(1, 6), address = c("Company, 18540 Main Ave., City, ST 12345", "Company 18540 Main Ave. City ST 12345-0000", "Company 18540 Main Ave. City State 12345", "Company, 18540 Main Ave., City, ST 12345 USA", "Company, One Main Ave Suite 18540m, City, ST 12345", "company 12345678") ) ## Function to grab even if a character follows the zip # paste together a more flexible regular expression pat <- pastex( "@rm_zip", "(?<!\\d)\\d{5}(?!\\d)", "(?<!\\d)\\d{5}-\\d{4}(?!\\d)" ) # Create your own function that extract is set to TRUE rm_zip2 <- rm_(pattern=pat, extract=TRUE) rm_zip2(zips$address)[[1]] [1] "18540" "12345" [[2]] [1] "18540" "12345-0000" [[3]] [1] "18540" "12345" [[4]] [1] "18540" "12345" [[5]] [1] "18540" "12345" [[6]] [1] NA## Function to extract just 5 digit zips rm_zip3 <- rm_(pattern="(?<!\\d)\\d{5}(?!\\d)", extract=TRUE) rm_zip3(zips$address)[[1]] [1] "18540" "12345" [[2]] [1] "18540" "12345" [[3]] [1] "18540" "12345" [[4]] [1] "18540" "12345" [[5]] [1] "18540" "12345" [[6]] [1] NA
gsub
,
stri_extract_all_regex
Other rm_.functions: as_numeric
,
as_numeric2
, rm_number
;
as_time
, as_time2
,
rm_time
, rm_transcript_time
;
rm_abbreviation
; rm_angle
,
rm_bracket
,
rm_bracket_multiple
,
rm_curly
, rm_round
,
rm_square
; rm_between
,
rm_between_multiple
;
rm_caps_phrase
; rm_caps
;
rm_citation_tex
; rm_citation
;
rm_city_state_zip
;
rm_city_state
; rm_date
;
rm_default
; rm_dollar
;
rm_email
; rm_emoticon
;
rm_endmark
; rm_hash
;
rm_nchar_words
; rm_non_ascii
;
rm_non_words
; rm_percent
;
rm_phone
; rm_postal_code
;
rm_repeated_characters
;
rm_repeated_phrases
;
rm_repeated_words
; rm_tag
;
rm_title_name
;
rm_twitter_url
, rm_url
;
rm_white
, rm_white_bracket
,
rm_white_colon
,
rm_white_comma
,
rm_white_endmark
,
rm_white_lead
,
rm_white_lead_trail
,
rm_white_multiple
,
rm_white_punctuation
,
rm_white_trail