Re: [Rd] sort infelicity

From: Spencer Graves <spencer.graves_at_prodsyse.com>
Date: Sun, 10 Jul 2011 08:26:35 -0700

       Thanks to Professors Ripley and Dalgaard for explaining the problem.

       In this case, I actually looked at the help page for "sort" but didn't see an option in the argument string that suggested a source for the problem: I saw no argument like locale=getOption('locale'). I fixed the problem, as suggested, by sorting the theoretical answer before stopifnot(all.equal(...)).

       Thanks again,
       Spencer Graves


On 7/10/2011 12:03 AM, peter dalgaard wrote:
> 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.



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sun 10 Jul 2011 - 15:29:56 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 12 Jul 2011 - 10:30:08 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive