On Jul 10, 2011, at 05:44 , Spencer Graves wrote:

> Hello:
> 
> 
>      sort(c('A', 'b', 'C')) seems to produce different answers in R 
> interactive than in "R CMD check", at least under both Fedora 13 and Windows 
> 7 with Windows 7 sessionInfo() copied below:
> 
> 
>      In interactive, the result is c('A', 'b', 'C');  with R CMD check, it is 
> c('A', 'C', 'b').  This produced the infelicity of a bug in "R CMD check" 
> that I could not replicate with interactive R because a *.Rd file contained 
> the equivalent example of stopifnot(all.equal(sort(c('A', 'b', 'C')), c('A', 
> 'b', 'C'))):  It worked just fine interactively but failed R CMD check.
> 
> 
>      Once I understood this problem, it was easy to fix.  However, it was not 
> easy to find, especially since I got the same problem under Fedora 13 Linux 
> and Windows 7.
> 
> 
>      This seems to be a sufficiently obscure anomaly that I thought someone 
> might like to see it reported here.
> 

Well, the problem is here:
[snip]
> 
> locale:
> [1] LC_COLLATE=English_United States.1252
==========================================
> [2] LC_CTYPE=English_United States.1252
> [3] LC_MONETARY=English_United States.1252
> [4] LC_NUMERIC=C
> [5] LC_TIME=English_United States.1252

All checks in R (unless we overlooked some) run with LC_COLLATE=C, because 
otherwise they give different results in different locales. One notorious 
example is that people expect that a file or an object called "zzz" comes out 
last in a sort, but Estonian sorts "z" between "s" and "t"...

Notice that your .Rd example would, for the same reason, break for people with 
different locale settings.



-- 
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd....@cbs.dk  Priv: pda...@gmail.com

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to