{"id":15554874,"url":"https://github.com/scumdogsteev/phonenumber","last_synced_at":"2025-03-29T02:43:27.312Z","repository":{"id":34604826,"uuid":"38552982","full_name":"scumdogsteev/phonenumber","owner":"scumdogsteev","description":"phonenumber R package","archived":false,"fork":false,"pushed_at":"2021-05-02T00:40:39.000Z","size":587,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-05T10:48:15.157Z","etag":null,"topics":["phone-number","r","r-package","rpackage","rstats","telephone-keypad"],"latest_commit_sha":null,"homepage":"https://stevemyles.site/phonenumber/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scumdogsteev.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-05T01:32:14.000Z","updated_at":"2021-05-02T00:32:59.000Z","dependencies_parsed_at":"2022-08-03T21:45:11.003Z","dependency_job_id":null,"html_url":"https://github.com/scumdogsteev/phonenumber","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scumdogsteev%2Fphonenumber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scumdogsteev%2Fphonenumber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scumdogsteev%2Fphonenumber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scumdogsteev%2Fphonenumber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scumdogsteev","download_url":"https://codeload.github.com/scumdogsteev/phonenumber/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246131243,"owners_count":20728299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["phone-number","r","r-package","rpackage","rstats","telephone-keypad"],"created_at":"2024-10-02T15:03:49.367Z","updated_at":"2025-03-29T02:43:27.291Z","avatar_url":"https://github.com/scumdogsteev.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: rmarkdown::github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, echo = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"README-\"\n)\n```\n\n# phonenumber \u003cimg src=\"man/figures/logo.png\" align=\"right\" height=\"139\" /\u003e\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/scumdogsteev/phonenumber/workflows/R-CMD-check/badge.svg)](https://github.com/scumdogsteev/phonenumber/actions)[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/phonenumber)](https://cran.r-project.org/package=phonenumber) [![Coverage Status](https://coveralls.io/repos/scumdogsteev/phonenumber/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/scumdogsteev/phonenumber?branch=master) [![RStudio CRAN mirror downloads](https://cranlogs.r-pkg.org/badges/grand-total/phonenumber)](https://cran.r-project.org/package=phonenumber)\n\u003c!-- badges: end --\u003e\n\n### Background\n\nWhen I recently posted some of my [Turbo Pascal Stuff](https://stevemyles.site/blog/2015/06/19/turbo-pascal-stuff/), I found an incomplete \nprogram that was supposed to do this. I was active on [BBSes](https://en.wikipedia.org/wiki/Bulletin_board_system) and, though I don't \nrecall the reason, I wanted a way to determine the possible words spelled by the\nBBS phone numbers (and/or how to determine what phone numbers correspond to \nwords/phrases). I never got around to finishing the second part (numbers to \nletters) in Turbo Pascal, though.\n\nI decided to create this functionality in R for three reasons:\n\n1. to see if I could write the functions\n2. to learn to publish a package to CRAN\n3. to serve as a possible pedagogical example for others as it involves working \nwith lists, splitting strings, and the [expand.grid](https://stat.ethz.ch/R-manual/R-devel/library/base/html/expand.grid.html) function.\n\n#### Telephone keypad\n\nFor purposes of this package, the mapping of numbers to letters on a telephone's\nkeypad are as follows:\n\n* *Default behavior* - if parameter `qz` is omitted (or has a value other than 0):  \n    * 2 corresponds to A, B, C\n    * 3 corresponds to D, E, F\n    * 4 corresponds to G, H, I\n    * 5 corresponds to J, K, L\n    * 6 corresponds to M, N, O\n    * 7 corresponds to P, Q, R, S\n    * 8 corresponds to T, U, V\n    * 9 corresponds to W, X, Y, Z\n    * 0 and 1 have no corresponding letters\n* *Alternate behavior* - if parameter `qz` = 0:\n    * 2 corresponds to A, B, C\n    * 3 corresponds to D, E, F\n    * 4 corresponds to G, H, I\n    * 5 corresponds to J, K, L\n    * 6 corresponds to M, N, O\n    * 7 corresponds to P, R, S\n    * 8 corresponds to T, U, V\n    * 9 corresponds to W, X, Y\n    * 0 corresponds to Q, Z\n    * 1 has no corresponding letters\n\n### Installation\n\n* `phonenumber` is available [on CRAN](https://cran.r-project.org/package=phonenumber) and can be\ninstalled accordingly:\n```r\ninstall.packages(\"phonenumber\")\nlibrary(phonenumber)\n```\n* You can also install `phonenumber` from GitHub using the `devtools` package:\n```r\ninstall.packages(\"devtools\")\nlibrary(devtools)\ninstall_github(\"scumdogsteev/phonenumber\")\nlibrary(phonenumber)\n```\n\n### Usage\n\nThe package consists of two functions:\n\n1. `letterToNumber` - converts letters in a string to numbers\n2. `numberToLetter` - converts numbers in a string to letters\n\nBoth functions convert non-alphanumeric characters to dash (-) and perform no\nconversion on their respective base character type (i.e., `letterToNumber` \nleaves letters as is and `numberToLetter` leaves numbers as is).\n\n### Examples\n\n```{r library, echo=FALSE}\nlibrary(phonenumber)\n```\n\n**`letterToNumber`** converts a string containing letters into the corresponding \nnumbers on a telephone's keypad. For example, if the user wants to know what \ntelephone number corresponds to \"Texas:\"\n\n```{r letterToNumber}\nstring \u003c- \"Texas\"\nletterToNumber(string)\n```\n\n**`numberToLetter`** converts a string containing numbers into the corresponding \nletters on a telephone's keypad. For example, if the user wants to know what \npossible character strings could be spelled by a sequence of numbers (e.g., 22):\n\n```{r numberToLetter ex1}\nstring \u003c- \"22\"\nnumberToLetter(string)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscumdogsteev%2Fphonenumber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscumdogsteev%2Fphonenumber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscumdogsteev%2Fphonenumber/lists"}