[Rd] data() misbehaving inside a function
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Thu Oct 16 21:08:27 MEST 2003
David James <dj at research.bell-labs.com> writes:
> Calls of the form data(package = pkg) inside a function
> incorrectly fail ("pkg" is a local variable). For instance,
>
> foo <- function(pkg) data(package = pkg)
> foo("base")
> Error in .find.package(package, lib.loc, verbose = verbose) :
> none of the packages were found
This is pretty much unavoidable if you want a function to accept
unquoted names. It's not in principle different from
women <- "airquality"
data(women)
not being equivalent to data("airquality"). Some functions (library(),
require(), demo()) have a character.only argument to prevent it, and I
suppose we should consider putting it on help() and data() as well.
Meanwhile, my preferred device is
foo <- function(pkg) eval(substitute(data(package)))
-p
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-devel
mailing list