[R] A question on substitute()

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Mon Dec 14 05:32:00 CET 2020

I would appreciate any help in correcting my misunderstanding of the

> substitute(quote(x+a), env = list(a=5))
quote(x + 5)  ## as expected
> substitute(quote(x+a), env = list2env(list(a=5)))
quote(x + 5)  ## as expected

> ### BUT
> .GlobalEnv$a
[1] 5
> substitute(quote(x+a), env = .GlobalEnv)
quote(x + a)  ## unexpected

I conclude from this that there is something special about .GlobalEnv that
does not allow it to behave as documented for the env argument in
?substitute, to wit:


an environment or a list object. Defaults to the current evaluation

I would be grateful for any insight, as I am clearly missing something.

Note: (though I don't think this matters):

> sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Big Sur 10.16

Cheers to all,


Bert Gunter

"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )

	[[alternative HTML version deleted]]

More information about the R-help mailing list