Re: [R] Change in behavior of compare statement

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Tue 20 Sep 2005 - 03:40:53 EST

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 Received on Wed Sep 21 02:42:09 2005

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