Re: [R] Change in behavior of compare statement

2005-09-19 Thread Duncan Murdoch
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?
 
 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


Re: [R] Change in behavior of compare statement

2005-09-19 Thread Duncan Murdoch
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