[R] with vs. attach

Spencer Graves spencer.graves at effectivedefense.org
Fri May 6 04:38:38 CEST 2016


Hi, David:  That works.  Thanks very much.  Spencer Graves



On 5/5/2016 7:43 PM, David Winsemius wrote:
>> On May 5, 2016, at 5:12 PM, Spencer Graves <spencer.graves at effectivedefense.org> wrote:
>>
>> I want a function to evaluate one argument
>> in the environment of a data.frame supplied
>> as another argument.  "attach" works for
>> this, but "with" does not.  Is there a way
>> to make "with" work?  I'd rather not attach
>> the data.frame.
>>
>>
>> With the following two functions "eval.w.attach"
>> works but "eval.w.with" fails:
>>
>>
>> dat <- data.frame(a=1:2)
>> eval.w.attach <- function(x, dat){
>>    attach(dat)
>>    X <- x
>>    detach()
>>    X
>> }
>>
>> eval.w.with <- function(x, dat){
>>    with(dat, x)
>> }
>>
>> eval.w.attach(a/2, dat) # returns c(.5, 1)
> How about using eval( substitute( ...))?
>
>   eval.w.sub <- function(expr, datt){
>     eval( substitute(expr), env=datt)
>                           }
>   eval.w.sub(a/2, dat)
> #[1] 0.5 1.0
>
>



More information about the R-help mailing list