[R] access data inside package
Duncan Murdoch
murdoch at stats.uwo.ca
Sun Jan 20 22:28:47 CET 2008
On 20/01/2008 3:21 PM, Dan Kelley wrote:
> The technique
> d <- get("d", pos=globalenv())
> doesn't work for me. It just says that it cannot get "d", even though I
> have a data/d.rda file.
>
> Do I have to do something special with namespaces, to find it?
>
> PS. a possibly-related link is as follows.
>
> http://www.nabble.com/how-to-make-read-only-data-frames--tp14756183p14756183.html
If you put it in data/d.rda, then it doesn't get loaded until you
request it via a call to data(). That's why the get() doesn't work.
I think you have two choices:
In some file in your R directory, create the object d. You might do
this by putting the file into inst/something and loading it from there,
or you might just include R source that creates it.
Alternatively, put it in the special sysdata.rda file in the R
directory. See Writing R Extensions "Package Subdirectories" for
instructions.
You probably want to specify LazyLoad: yes for your package, so that
objects don't take up memory until actually referenced.
In either of these cases, the object d will be visible to users as soon
as your package is loaded. If you don't want that, you should use a
namespace for your package.
Duncan Murdoch
More information about the R-help
mailing list