[Rd] bquote/evalq behavior changed in R-3.2.1
kevinushey at gmail.com
Wed Jul 15 21:43:49 CEST 2015
My best guess is that it could be related to this commit:
since that's the only change that's touched `rapply` lately.
On Wed, Jul 15, 2015 at 12:35 PM, Dayne Filer <dayne.filer at gmail.com> wrote:
> In 3.1.2 eval does not store the result of the bquote-generated call in the
> given environment. Interestingly, in 3.2.1 eval does store the result of
> the bquote-generated call in the given environment.
> In other words if I run the given example with eval rather than evalq, on
> 3.1.2 "x" is never stored in "fenv," but it is when I run the same code on
> 3.2.1. However, the given example stores "x" in "fenv" on 3.1.2, but throws
> the error I gave when run on 3.2.1.
> To give credit, I received the idea for using evalq from SO:
> On Wed, Jul 15, 2015 at 3:29 PM, William Dunlap <wdunlap at tibco.com> wrote:
>> 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>
>>> 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
>>> the given environment in 3.1.2.
>>> [[alternative HTML version deleted]]
>>> R-devel at r-project.org mailing list
> [[alternative HTML version deleted]]
> R-devel at r-project.org mailing list
More information about the R-devel