From hb at biostat.ucsf.edu  Sun Nov 23 01:05:33 2014
From: hb at biostat.ucsf.edu (Henrik Bengtsson)
Date: Sat, 22 Nov 2014 16:05:33 -0800
Subject: [Rd] R string comparisons may vary with platform (plain text)
In-Reply-To: <5470F51F.1000802@gmail.com>
References: <D0962B34.6441%sambler@linkedin.com> <5470F51F.1000802@gmail.com>
Message-ID: <CAFDcVCQeXKWL87wOzpa=7pX1nMe91b73VxOC5=3Fby9M8U+2Hg@mail.gmail.com>

On Sat, Nov 22, 2014 at 12:42 PM, Duncan Murdoch
<murdoch.duncan at gmail.com> wrote:
> On 22/11/2014, 2:59 PM, Stuart Ambler wrote:
>> A colleague?s R program behaved differently when I ran it, and we thought
>> we traced it probably to different results from string comparisons as
>> below, with different R versions.  However the platforms also differed.  A
>> friend ran it on a few machines and found that the comparison behavior
>> didn?t correlate with R version, but rather with platform.
>>
>> I wonder if you?ve seen this.  If it?s not some setting I?m unaware of,
>> maybe someone should look into it.  Sorry I haven?t taken the time to read
>> the source code myself.
>
> Looks like a collation order issue.  See ?Comparison.

With the oddity that both platforms use what look like similar locales:

LC_COLLATE=en_US.UTF-8
LC_COLLATE=en_US.utf8

/Henrik

>
> Duncan Murdoch
>
>> Thanks,
>> Stuart
>>
>> R version 3.0.2 (2013-09-25) -- "Frisbee Sailing"
>> Platform: x86_64-unknown-linux-gnu (64-bit)
>> Sys.getlocale()
>> [1]
>> "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF
>> -8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_
>> NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICA
>> TION=C"
>>
>> "-1" > "1"
>> [1] TRUE
>>
>> "-1" <"1"
>> [1] FALSE
>>
>> "1" < "-1"
>> [1] TRUE
>>
>> "1" < "-"
>> [1] FALSE
>>
>> Vs.
>>
>> R version 3.1.1 (2014-07-10) ? ?Sock it to Me"
>> Platform: x86_64-redhat-linux-gnu (64-bit)
>> Sys.getlocale()
>> [1]
>> "LC_CTYPE=en_US.utf8;LC_NUMERIC=C;LC_TIME=en_US.utf8;LC_COLLATE=en_US.utf8
>> ;LC_MONETARY=en_US.utf8;LC_MESSAGES=en_US.utf8;LC_PAPER=en_US.utf8;LC_NAME
>> =C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.utf8;LC_IDENTIFICATION
>> =C"
>>
>> "-1" > "1"
>> [1] FALSE
>>
>> "-1" <"1"
>> [1] TRUE
>>
>> "1" < "-1"
>> [1] FALSE
>>
>> "1" < "-"
>> [1] FALSE
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] R string comparisons may vary with platform (plain text)
Henrik Bengtsson