Convert Letters to Numbers and Back as on a Telephone Keypad

Convert English letters to numbers or numbers to English letters as on a telephone keypad. When converting letters to numbers, a character vector is returned with "A," "B," or "C" becoming 2, "D," "E", or "F" becoming 3, etc. When converting numbers to letters, a character vector is returned with multiple elements (i.e., "2" becomes a vector of "A," "B," and "C").


CRAN_Status_Badge Travis-CI Build Status Appveyor Build status Coverage Status RStudio CRAN mirror downloads

phonenumber

phonenumber is an R package that converts English letters to numbers or numbers to English letters as on a telephone keypad.

Author: Steve Myles ([email protected])

Project Home: http://steve.mylesandmyles.info/projects/phonenumber/

License: MIT license

When I recently posted some of my Turbo Pascal Stuff, I found an incomplete program that was supposed to do this. I was active on BBSes and, though I don't recall the reason, I wanted a way to determine the possible words spelled by the BBS phone numbers (and/or how to determine what phone numbers correspond to words/phrases). I never got around to finishing the second part (numbers to letters) in Turbo Pascal, though.

I decided to create this functionality in R for three reasons:

  1. to see if I could write the functions
  2. to learn to publish a package to CRAN
  3. to serve as a possible pedagogical example for others as it involves working with lists, splitting strings, and the expand.grid function.

Telephone keypad

For purposes of this package, the mapping of numbers to letters on a telephone's keypad are as follows:

  • Default behavior - if parameter qz is omitted (or has a value other than 0):
    • 2 corresponds to A, B, C
    • 3 corresponds to D, E, F
    • 4 corresponds to G, H, I
    • 5 corresponds to J, K, L
    • 6 corresponds to M, N, O
    • 7 corresponds to P, Q, R, S
    • 8 corresponds to T, U, V
    • 9 corresponds to W, X, Y, Z
    • 0 and 1 have no corresponding letters
  • Alternate behavior - if parameter qz = 0:
    • 2 corresponds to A, B, C
    • 3 corresponds to D, E, F
    • 4 corresponds to G, H, I
    • 5 corresponds to J, K, L
    • 6 corresponds to M, N, O
    • 7 corresponds to P, R, S
    • 8 corresponds to T, U, V
    • 9 corresponds to W, X, Y
    • 0 corresponds to Q, Z
    • 1 has no corresponding letters

Installation

  • phonenumber is available on CRAN and can be installed accordingly:

    install.packages("phonenumber")
    library(phonenumber)
  • You can also install phonenumber from GitHub using the devtools package:

    install.packages("devtools")
    library("devtools")
    install_github("scumdogsteev/phonenumber")
    library(phonenumber)

Usage

The package consists of two functions:

  1. letterToNumber - converts letters in a string to numbers
  2. numberToLetter - converts numbers in a string to letters

Both functions convert non-alphanumeric characters to dash (-) and perform no conversion on their respective base character type (i.e., letterToNumber leaves letters as is and numberToLetter leaves numbers as is).

Examples

letterToNumber converts a string containing letters into the corresponding numbers on a telephone's keypad. For example, if the user wants to know what telephone number corresponds to "Texas:"

string <- "Texas"
letterToNumber(string)
#> [1] "83927"

numberToLetter converts a string containing numbers into the corresponding letters on a telephone's keypad. For example, if the user wants to know what possible character strings could be spelled by a sequence of numbers (e.g., 22):

string <- "22"
numberToLetter(string)
#> [1] "AA" "AB" "AC" "BA" "BB" "BC" "CA" "CB" "CC"

News

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("phonenumber")

0.2.2 by Steve Myles, 4 years ago


http://steve.mylesandmyles.info/projects/phonenumber/, https://github.com/scumdogsteev/phonenumber


Report a bug at https://github.com/scumdogsteev/phonenumber/issues


Browse source code at https://github.com/cran/phonenumber


Authors: Steve Myles [aut, cre]


Documentation:   PDF Manual  


MIT + file LICENSE license


Suggests knitr, testthat


See at CRAN