[R] R function to convert a number to text

Dimitris Rizopoulos dimitris.rizopoulos at med.kuleuven.be
Mon Mar 3 13:26:54 CET 2008


check also the article by John Fox in Rnews volume 5/1, May 2005, 
Programmer's Niche 51-55:

http://cran.r-project.org/doc/Rnews/Rnews_2005-1.pdf

Best,
Dimitris

----
Dimitris Rizopoulos
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
     http://www.student.kuleuven.be/~m0390867/dimitris.htm


----- Original Message ----- 
From: "Jim Lemon" <jim at bitwrit.com.au>
To: "lin tang" <lynnatsd at yahoo.com>
Cc: <r-help at r-project.org>
Sent: Monday, March 03, 2008 11:38 AM
Subject: Re: [R] R function to convert a number to text


> lin tang wrote:
>> hi, Dear R users -
>>
>> I wonder is there a written R function to convert a number to a 
>> text, say convert 1 to "one" , 100  to "one hundred". I know in 
>> xls. has such a function BAHTTEXT, does anybody know is there a 
>> similar function in R ? Thanks.
>>
> Hi Lin,
> I got bored after the millions, but this should handle the smaller
> numbers, and you can always extend it.
>
> digits2text<-function(x,mult="") {
>  units<-c("one","two","three","four","five",
>   "six","seven","eight","nine")
>  teens<-c("ten","eleven","twelve","thirteen","fourteen",
>   "fifteen","sixteen","seventeen","eighteen","nineteen")
>  tens<-c("ten","twenty","thirty","forty","fifty",
>   "sixty","seventy","eighty","ninety")
>  digits<-rev(as.numeric(strsplit(as.character(x),"")[[1]]))
>  digilen<-length(digits)
>  if(digilen == 2 && digits[2] == 1) return(teens[digits[1]+1])
>  digitext<-units[digits[1]]
>  if(digilen > 1) digitext<-c(digitext,tens[digits[2]])
>  if(digilen > 2) digitext<-c(digitext,"hundred",units[digits[3]])
>  if(digilen > 3) digitext<-
>   c(digitext,digits2text(floor(x/1000),"thousand"))
>  if(digilen > 6) digitext<-
>   c(digitext,digits2text(floor(x/1000000),"million"))
>  return(paste(c(rev(digitext),mult),sep="",collapse=" "))
> }
>
> Jim
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 


Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm



More information about the R-help mailing list