[Rd] [External] exists, get and get0 accept silently inputs of length > 1

Hugh Parsonage hugh@p@r@on@ge @end|ng |rom gm@||@com
Tue Nov 17 02:30:32 CET 2020


I noticed the recent commit to R-dev (r79434).  Is this wise? I've
often used get() in constructions like

for (j in ls()) if (is.numeric(x <- get(j))) ...

(and often interactively, rather than in a package)

Am I to understand that get(j) will now be equivalent to `j` even if j
is a string referring putatively to another object?

On Sat, 14 Nov 2020 at 01:34, <luke-tierney using uiowa.edu> wrote:
>
> Worth looking into. It would probably cause some check failures, so
> would probably be a good idea to run a check across BIOC/CRAN.  At the
> same time it would be worth allowing name objects (type "symbol") so
> thee don't have to be converted to character for the call and then
> back to names internally for the environment lookup.
>
> Best,
>
> luke
>
> On Fri, 13 Nov 2020, Antoine Fabri wrote:
>
> > Dear R-devel,
> >
> > The doc of exists, get and get0 is unambiguous, x should be an object given
> > as a character string. However these accept longer inputs. It can lead an
> > uncareful user to think these functions are vectorized when they're not,
> > and generally lets through bugs that one might have preferred to trigger
> > earlier failure.
> >
> > ``` r
> > exists("d")
> > #> [1] FALSE
> > exists(c("c", "d"))
> > #> [1] TRUE
> > get(c("c", "d"))
> > #> function (...)  .Primitive("c")
> > get0(c("c", "d"))
> > #> function (...)  .Primitive("c")
> > ```
> >
> > I believe these should either fail, or be vectorized, probably the former.
> >
> > Thanks,
> >
> > Antoine
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-devel using r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>
> --
> Luke Tierney
> Ralph E. Wareham Professor of Mathematical Sciences
> University of Iowa                  Phone:             319-335-3386
> Department of Statistics and        Fax:               319-335-3017
>     Actuarial Science
> 241 Schaeffer Hall                  email:   luke-tierney using uiowa.edu
> Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list