The help files for delayedAssign and substitute both say that
substitute() can be used to see the expression associated with a
promise. However, I can't see how to do that. When I try the example
in help file for delayedAssign I don't see substitute() extracting the
promise, e.g.:
> msg <- "old"
> delayedAssign("x", msg)
> msg <- "new!"
> substitute(x) #- I would expect to see 'msg' here
x
> x #- new!
[1] "new!"
> substitute(x)
x
>
Has this functionality been removed, and the docs not updated? Or am I
missing something?
-- Tony Plate
> sessionInfo()
R version 2.4.1 (2006-12-18)
i386-pc-mingw32
locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
attached base packages:
[1] "stats" "graphics" "grDevices"
"utils" "datasets" "methods"
[7] "base"
other attached packages:
g.data
"1.6"
>
Duncan Murdoch
2007-Feb-13 20:11 UTC
[Rd] question on docs for delayedAssign and substitute
On 2/13/2007 1:34 PM, Tony Plate wrote:> The help files for delayedAssign and substitute both say that > substitute() can be used to see the expression associated with a > promise. However, I can't see how to do that. When I try the example > in help file for delayedAssign I don't see substitute() extracting the > promise, e.g.: > > > msg <- "old" > > delayedAssign("x", msg) > > msg <- "new!" > > substitute(x) #- I would expect to see 'msg' here > x > > x #- new! > [1] "new!" > > substitute(x) > x > > > > Has this functionality been removed, and the docs not updated? Or am I > missing something?This is a misfeature that has been around forever. The substitute() function works differently when the env argument is the global environment than it does in general. > delayedAssign("x", 1+2) > substitute(x) x > e <- new.env() > delayedAssign("x", 1+2, assign.env = e) > substitute(x, e) 1 + 2 The documentation for substitute() indicates this, but perhaps not entirely unambiguously. Duncan Murdoch> > -- Tony Plate > > > sessionInfo() > R version 2.4.1 (2006-12-18) > i386-pc-mingw32 > > locale: > LC_COLLATE=English_United States.1252;LC_CTYPE=English_United > States.1252;LC_MONETARY=English_United > States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252 > > attached base packages: > [1] "stats" "graphics" "grDevices" "utils" "datasets" "methods" > [7] "base" > > other attached packages: > g.data > "1.6" > > > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel
Possibly Parallel Threads
- A doubt about substitute() after delayedAssign()
- Substitute / delayedAssign (was: Substitute unaware when promise objects are evaluated)
- replacing characters in matrix. substitute, delayedAssign, huh?
- delayedAssign changing values
- delayedAssign and interrupts