Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use a non-ASCII symbol (e.g. £) in an R package function?

I have a simple function in one of my R packages, with one of the arguments symbol = "£":

formatPound <- function(x, digits = 2, nsmall = 2, symbol = "£"){ 
  paste(symbol, format(x, digits = digits, nsmall = nsmall)) 
}

But when running R CMD check, I get this warning:

* checking R files for non-ASCII characters ... WARNING
Found the following files with non-ASCII characters:
  formatters.R

It's definitely that £ symbol that causes the problem. If I replace it with a legitimate ASCII character, like $, the warning disappears.

Question: How can I use £ in my function argument, without incurring a R CMD check warning?

like image 303
Andrie Avatar asked Jul 12 '12 13:07

Andrie


1 Answers

Looks like "Writing R Extensions" covers this in Section 1.7.1 "Encoding Issues".


One of the recommendations in this page is to use the Unicode encoding \uxxxx. Since £ is Unicode 00A3, you can use:

formatPound <- function(x, digits=2, nsmall=2, symbol="\u00A3"){
  paste(symbol, format(x, digits=digits, nsmall=nsmall))
}


formatPound(123.45)
[1] "£ 123.45"
like image 160
Dirk Eddelbuettel Avatar answered Sep 28 '22 06:09

Dirk Eddelbuettel