[Rd] bquote/evalq behavior changed in R-3.2.1

William Dunlap wdunlap at tibco.com
Wed Jul 15 21:29:14 CEST 2015


I am curious why you used evalq instead of eval in this code.

Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Wed, Jul 15, 2015 at 11:49 AM, Dayne Filer <dayne.filer at gmail.com> wrote:

> Hello,
>
> I upgraded from 3.1.2 to 3.2.1 and am receiving errors on code that worked
> as I intended previously. Briefly, I am using bquote to generate
> expressions to modify data.table objects within a  function, so I need the
> changes to actually be stored in the given environment. Previously, I used
> code like the following:
>
> test <- list(bquote(x <- 10))
> fenv <- environment()
> rapply(test, evalq, envir = fenv)
>
> Although the code in the example above is much simpler, it shows the
> problem. On 3.1.2 the expression is evaluated and x is stored as 10 in the
> given environment, fenv. In 3.2.1 the code throws an error:
>
> Error in eval(substitute(expr), envir, enclos) : object 'X' not found
>
> I could not find anything in the release notes that would explain this
> change. Changing evalq to eval works in 3.2.1, but eval does not store x in
> the given environment in 3.1.2.
>
> Thanks,
>
> Dayne
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list