A phone vector stores phone numbers parsed with libphonenumber for formatting and further processing.
phone(
x = character(),
region = character(),
show_progress = getOption("dialr.show_progress")
)
phone_reparse(x)
is.phone(x)
# S3 method for phone
print(x, n = 10, ...)
# S3 method for phone
format(
x,
format = c("E164", "NATIONAL", "INTERNATIONAL", "RFC3966"),
home = NULL,
clean = TRUE,
strict = FALSE,
...
)
# S3 method for phone
as.character(x, raw = TRUE, ...)A character vector of phone numbers.
A character vector of ISO country codes with
the default region for each phone number in x. A region vector of
length 1 will be recycled to the length of x.
If NA or "", numbers written in international format (with a leading
+) will be parsed without a default region.
Should a progress bar be displayed? Defaults to the
option dialr.show_progress.
Number of elements to print.
Additional arguments for specific methods.
Phone number format to use from one of four standards:
"E164": general format for international telephone numbers from ITU-T Recommendation E.164
"NATIONAL": national notation from ITU-T Recommendation E.123
"INTERNATIONAL": international notation from ITU-T Recommendation E.123
"RFC3966": "tel" URI syntax from the IETF tel URI for Telephone Numbers
See notes from the libphonenumber javadocs for more details.
format defaults to "E164". The default can be set in option
dialr.format.
ISO country code for home region. If provided, numbers will be formatted for dialing from the home region.
Should non-numeric characters be removed? If TRUE, keeps
numbers and leading "+".
Should invalid phone numbers be removed? If TRUE, invalid
phone numbers are replaced with NA.
If TRUE, the raw phone number is returned. Otherwise elements
are cleaned with format().
libphonenumber defines the PhoneNumberUtil class, with a set of functions
for extracting information from and performing processing on a parsed
Phonenumber object. A text phone number must be parsed before any other
operations (e.g. checking phone number validity, formatting) can be
performed. When parsing a phone number a "default region" is
required to determine the processing context for non-international numbers.
A phone vector stores the raw phone number, the default region and a java
Phonenumber object for each element. The java object is cached so should
persist between R sessions. In case of issues, use phone_reparse() to
recreate the phone vector from the original phone number and region.
Phone number parsing functions display a progress bar in interactive sessions
by default. This can be disabled globally by setting option
dialr.show_progress to FALSE, or locally using the show_progress
function argument.
phone(): Phone numbers are parsed using
PhoneNumberUtil.parseAndKeepRawInput(). A phone vector stores the
returned Phonenumber.PhoneNumber object alongside the original raw text
and default region for later reference.
format(): PhoneNumberUtil.format() by default, or
PhoneNumberUtil.formatOutOfCountryCallingNumber() if home is provided.
Other phone functions:
dialr-example,
dialr-match,
dialr-region,
dialr-type,
dialr-valid,
dialr
# Create a phone vector
x <- phone(c(0, 0123, "0412 345 678", "61412987654", "03 9123 4567", "+12015550123"), "AU")
is.phone(x)
#> [1] TRUE
print(x)
#> # Parsed phone numbers: 6 total, 5 successfully parsed
#> [1] 0 123 0412 345 678 61412987654 03 9123 4567
#> [6] +12015550123
as.character(x)
#> [1] "0" "123" "0412 345 678" "61412987654" "03 9123 4567"
#> [6] "+12015550123"
format(x)
#> [1] NA "+61123" "+61412345678" "+61412987654" "+61391234567"
#> [6] "+12015550123"
format(x, home = "AU")
#> [1] NA "123" "0412345678" "0412987654"
#> [5] "0391234567" "001112015550123"
# Parse international number with no default region
phone("+61412345678", NA)
#> # Parsed phone numbers: 1 total, 1 successfully parsed
#> [1] +61412345678
# Will fail to parse if number is not in international format
phone("0412345678", NA)
#> # Parsed phone numbers: 1 total, 0 successfully parsed
#> [1] 0412345678
# A combination can be used
phone(c("+61412345678", "0412345678"), c(NA, "AU"))
#> # Parsed phone numbers: 2 total, 2 successfully parsed
#> [1] +61412345678 0412345678