[Rd] get and exists are not vectorized

Patrick Burns pburns at pburns.seanet.com
Tue Feb 12 18:48:55 CET 2013

Here is the current behavior (in 2.15.2 and 3.0.0):

 > exists(c('notLikely', 'exists'))
 > exists(c('exists', 'notLikely'))
[1] TRUE
 > get(c('notLikely', 'exists'))
Error in get(c("notLikely", "exists")) : object 'notLikely' not found
 > get(c('exists', 'notLikely'))
function (x, where = -1, envir = if (missing(frame)) 
as.environment(where) else sys.frame(frame),
     frame, mode = "any", inherits = TRUE)
.Internal(exists(x, envir, mode, inherits))
<bytecode: 0x000000000f7f8830>
<environment: namespace:base>

Both 'exists' and 'get' silently ignore all but the
first element.

My view is that 'get' should do what it currently does
except it should warn about ignoring subsequent elements
if there are any.

I don't see a reason why 'exists' shouldn't be vectorized.

Am I missing something?


Patrick Burns
pburns at pburns.seanet.com
twitter: @burnsstat @portfolioprobe
(home of:
  'Impatient R'
  'The R Inferno'
  'Tao Te Programming')

More information about the R-devel mailing list