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