Re: [R] Change in behavior of compare statement

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Tue 20 Sep 2005 - 06:48:33 EST

On 9/19/2005 1:40 PM, Duncan Murdoch wrote:

> On 9/19/2005 12:25 PM, Tomas Andersson wrote:

>> Dear all,
>>
>> I have come across some Windows Script code which calls the
>> "file.exists" function in R to check for the existence of a particular
>> file on an R server. This is what the code looks like:
>>
>> do
>> {
>> // some useful code
>> }
>> while (m_workspace.session.eval("file.exists(" + dataFile
>> + ")") != "1");
> 
> What is this function m_workspace.session.eval?  It's not a base 
> function.  Perhaps its definition has changed?

This has to be one of the most out-to-lunch answers I ever wrote. Sorry, please ignore it.

The code above is "Windows Script", whatever that is, not R. file.exists hasn't changed, but whatever interface you're using to R presumably has. In the code you're looking at there, it converted TRUE to "1", and now it doesn't.

Duncan Murdoch
>>
>> It appears that the behavior of this code is different when used with
>> R version 2.1.1 compared to R version 1.9.1. If the compare statement
>> s is changed from
>>
>> while (s != "1")
>> to
>> while (s != "True")
>> or
>> while !(s)
>>
>> the behavior of the code is the same with both versions of R.
>>
>> After reading the R documentation, I have not found any evidence that
>> the original syntax (s != "1") is in any way recommended or supported
>> (in version 2.1.1). Still, my questions are:

> 
> s != "1" is perfectly valid R code.  It will evaluate to TRUE in at 
> least the following case:
> 
> as.character(s) is not an NA, but isn't "1".
> 
> s != "True" will evaluate to TRUE in most cases, unless s happens to 
> contain that exact string.

>>
>> 1. Is it possible that the syntax has been supported in older versions of R?
>> 2. Is the reason for the recent change in behavior known and
>> documented anywhere?
> 
> The syntax is fine, but it looks like a behaviour change in that 
> function m_workspace.session.eval.  You'll need to ask the author of 
> that function what is happening.
> 
> Duncan Murdoch
>

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Sep 21 02:32:52 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:40:15 EST