[Rd] A where() functions that does what exists() does but return the environment when object lives?

Uwe Ligges ligges at statistik.tu-dortmund.de
Sat Oct 10 10:24:24 CEST 2015


I'd start looking at getAnywhere().

Best,
Uwe

On 10.10.2015 01:18, Henrik Bengtsson wrote:
> Hi,
>
> exists("foo", inherits=TRUE) check whether an object named "foo"
> exists, and get("foo", inherits=TRUE) retrieves it.  I'm looking for a
> similar function to exists() that returns the environment where the
> object "foo" exists, iff at all.  If not found, NULL is returned.
> Does that exist?
>
> EXAMPLE #1:
>
>> sample2 <- base::sample
>> env <- where("sample2", inherits=TRUE)
>> env
> <environment: R_GlobalEnv>
>
> Note the difference to:
>
>> obj <- get("sample2", inherits=TRUE)
>> environment(obj)
> <environment: namespace:base>
>
>
> EXAMPLE #2:
>
>> a <- 1
>> foo <- function() { b <- 2; list(a=where("a", inherits=TRUE), b=where("b", inherits=TRUE)) }
>> foo()
> $a
> <environment: R_GlobalEnv>
> $b
> <environment: 0x000000000b7d2798>
>
>> foo()
> $a
> <environment: R_GlobalEnv>
> $b
> <environment: 0x000000000b7d23e0>
>
>
> I do understand that I can implement such a function myself, but I
> prefer not to.
>
> Thanks,
>
> Henrik
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list