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

Dayne Filer dayne.filer at gmail.com
Wed Jul 15 20:49:27 CEST 2015


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.



	[[alternative HTML version deleted]]

More information about the R-devel mailing list