From Bill.Venables at csiro.au  Fri Dec 22 01:46:56 2006
From: Bill.Venables at csiro.au (Bill.Venables at csiro.au)
Date: Fri, 22 Dec 2006 01:46:56 +0100 (CET)
Subject: [Rd] substitute creates an object which prints incorrectly (PR#9427)
Message-ID: <20061222004656.0131E4C99B@slim.kubism.ku.dk>

The function "substitute" seems to fail to make a genuine
substitution, although the printed verision seems fine.  Here is an
example.

> m <- substitute(Y <- function(x) FUN(x+1), 
+ list(Y = as.name("y"), FUN = as.name("sin")))
> m
y <- function(x) sin(x + 1)
> eval(m)
> y
function(x) FUN(x+1)

However the story doesn't end there.  The substitution appears to have
been made, even though the printed version, this time, suggests
otherwise.

> y(pi)
[1] -0.841471
> sin(pi+1)
[1] -0.841471
>

Bill Venables 
CMIS, CSIRO Laboratories, 
PO Box 120, Cleveland, Qld. 4163 
AUSTRALIA 
Office Phone (email preferred): +61 7 3826 7251 
Fax (if absolutely necessary):    +61 7 3826 7304 
Mobile (rarely used):                +61 4 1963 4642 
Home Phone:                          +61 7 3286 7700 
mailto:Bill.Venables at csiro.au 
http://www.cmis.csiro.au/bill.venables/ 


--please do not edit the information below--

Version:
 platform = i386-pc-mingw32
 arch = i386
 os = mingw32
 system = i386, mingw32
 status = 
 major = 2
 minor = 4.1
 year = 2006
 month = 12
 day = 18
 svn rev = 40228
 language = R
 version.string = R version 2.4.1 (2006-12-18)

Windows XP Professional (build 2600) Service Pack 2.0

Locale:
LC_COLLATE=English_Australia.1252;LC_CTYPE=English_Australia.1252;LC_MON
ETARY=English_Australia.1252;LC_NUMERIC=C;LC_TIME=English_Australia.1252

Search Path:
 .GlobalEnv, .R_Store, package:RODBC, package:xlsReadWrite,
package:cluster, package:vegan, package:ASOR, package:stats,
package:graphics, package:grDevices, package:utils, package:datasets,
.R_Data, .R_Utils, package:svIDE, package:tcltk, package:methods,
Autoloads, package:base



[Rd] substitute creates an object which prints incorrectly (PR#9427)
Bill.Venables at csiro.au