The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

dialr

Lifecycle: stable CRAN status R-CMD-check Coverage status

Overview

dialr is an R interface to Google’s libphonenumber library. It uses the java implementation of libphonenumber via rJava for all phone number processing.

For a full rundown of libphonenumber see their GitHub and javadocs.

Installation

You can install the released version of dialr from CRAN with:

install.packages("dialr")

And the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("socialresearchcentre/dialr")

Usage

library(dialr)

# Parse a character phone number vector
x <- c(0, 0123, "0404 753 123", "61410123817", "+12015550123")
x <- phone(x, "AU")

is_parsed(x)    # Was the phone number successfully parsed?
#> [1] FALSE  TRUE  TRUE  TRUE  TRUE
is_valid(x)     # Is the phone number valid?
#> [1] FALSE FALSE  TRUE  TRUE  TRUE
is_possible(x)  # Is the phone number possible?
#> [1] FALSE FALSE  TRUE  TRUE  TRUE
get_region(x)   # What region (ISO country code) is the phone number from?
#> [1] NA   NA   "AU" "AU" "US"
get_type(x)     # Is the phone number a fixed line, mobile etc.
#> [1] NA                     "UNKNOWN"              "MOBILE"              
#> [4] "MOBILE"               "FIXED_LINE_OR_MOBILE"
format(x)
#> [1] NA             "+61123"       "+61404753123" "+61410123817" "+12015550123"
format(x, home = "AU")
#> [1] NA                "123"             "0404753123"      "0410123817"     
#> [5] "001112015550123"

# Use with dplyr
library(dplyr)

y <- tibble(id = 1:4,
            phone1 = c(0, 0123, "0404 753 123", "61410123817"),
            phone2 = c("03 9388 1234", 1234, "+12015550123", 0),
            country = c("AU", "AU", "AU", "AU"))

y %>%
  mutate_at(vars(matches("^phone")), ~phone(., country)) %>%
  mutate_at(vars(matches("^phone")),
            list(valid = is_valid,
                 region = get_region,
                 type = get_type,
                 clean = format))
#> # A tibble: 4 × 12
#>      id       phone1       phone2 country phone1_valid phone2_valid
#>   <int>      <phone>      <phone> <chr>   <lgl>        <lgl>       
#> 1     1           NA +61393881234 AU      FALSE        TRUE        
#> 2     2       +61123      +611234 AU      FALSE        FALSE       
#> 3     3 +61404753123 +12015550123 AU      TRUE         TRUE        
#> 4     4 +61410123817           NA AU      TRUE         FALSE       
#> # ℹ 6 more variables: phone1_region <chr>, phone2_region <chr>,
#> #   phone1_type <chr>, phone2_type <chr>, phone1_clean <chr>,
#> #   phone2_clean <chr>

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.