From h.wickham at gmail.com  Tue Oct 13 23:44:08 2015
From: h.wickham at gmail.com (Hadley Wickham)
Date: Tue, 13 Oct 2015 16:44:08 -0500
Subject: [Rd] A where() functions that does what exists() does but
 return the environment when object lives?
In-Reply-To: <CABdHhvEsKjDQ8qBS_ni8gZNg7JoKtCVhhs7R5h3WaxpVyRdrJA@mail.gmail.com>
References: <CAFDcVCRR1YwaC=yQXgvgKpoW1HKLPauKYGrU8g9S3q9rAbctLQ@mail.gmail.com>
	<CABdHhvEsKjDQ8qBS_ni8gZNg7JoKtCVhhs7R5h3WaxpVyRdrJA@mail.gmail.com>
Message-ID: <CABdHhvFmj0xu1s3Ku48phkr91T_JzRQ++BGVEGw2BG1yOjxGqA@mail.gmail.com>

On Tue, Oct 13, 2015 at 4:43 PM, Hadley Wickham <h.wickham at gmail.com> wrote:
> Seems easy enough to write yourself:
>
> where <- function(x, env = parent.frame()) {
>     if (identical(env, emptyenv()))
>         return(NULL)
>     if (exists(x, envir = env, inherits = FALSE))
>         return(env)
>     where(x, parent.env(env))
> }
>
> sample2 <- base::sample
> where("sample2")
> #> <environment: 0x1154d3c28>

And that returns a random environment because I ran it with
reprex::reprex().  In interactive use it will return <environment:
R_GlobalEnv>

Hadley

-- 
http://had.co.nz/



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