[R] Strange paste, string or package problem?

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Mar 4 07:58:08 CET 2008


On Tue, 4 Mar 2008, Thomas Allen wrote:

> Hi
>
> I came across this strange bug the other day, I'm not sure how to solve it
> and I wonder if anyone can even replicate it.
>
> Using OS Ubuntu 7.10
>
> Step 1) Make an R package using the package.skeleton() command with
> only these two functions:
>
> error <- function(){
>  cmd <- paste(" -a ",1," -a ",1," -a ",1,
>               " -a ",1," -a ",1," -a ",1,
>               " -a ",1," -a ",1," -a ",1,
>               " -a ",1," -a ",1," -a ",1,
>               " –a ",1,sep="")
>  cat(cmd,"\n")
> }
> noerror <- function(){
>  cmd <- paste(" -a ",1," -a ",1," -a ",1,
>               " -a ",1," -a ",1," -a ",1,
>               " -a ",1," -a ",1," -a ",1,
>               " -a ",1," -a ",1," -a ",1,sep="")
>  cat(cmd,"\n")
> }
>
> Step 2) Start R again. Load the package with library() and run the commands:
> error()
> noerror()
>
> I get the following output:
>>> library(errors)
>> error()
> -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 <e2><80><93>a 1
>> noerror()
> -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1 -a 1
>>
>
> Now why does that "<e2><80><93>" replace one of the "-" in the first command?

Because you put it there!  I believe that at the first step you were 
running R in a UTF-8 locale, and at the second in (probably) an 8-bit 
locale.  I can reproduce this by changing from en_GB.utf8 to en_GB on F8, 
for example.

<e2><80><93> is UTF-8 for the Unicode point U+2013, the en dash.  I don't 
know how you managed to enter that in UTF-8 (I would have not have 
expected it to be accidentally possible from the keyboard), but the 
solution is to use hyphen where you intend hyphen.  (Unicode calls this 
'HYPHEN-MINUS' to indicate its dual role -- it also has U+2212 for minus.)


>
> Any ideas?
>
> Cheers
>
> Tom
>
> --
> Thomas Allen
> Department of Biochemistry
> University of Otago
> email1: hedbag at gmail.com
> email2: allth025 at student.otago.ac.nz
> Work: (+64)3 479 5123
> Mobile: 027 321 4269
>
> ______________________________________________
> 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.
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


More information about the R-help mailing list