[Rd] datalist and data objects in R Package building

Uwe Ligges ligges at statistik.tu-dortmund.de
Mon Mar 28 17:51:53 CEST 2011



On 28.03.2011 17:49, andrew stewart wrote:
> Thank you for your response.
>
> Yes, using a call to data() after 1) building and 2) installing my own
> package is exactly what I'm trying to accomplish.  I am building a package.
>   I would like to load the data objects that are part of the custom package
> that I have created and installed on my machine.  Apologies if I wasn't
> clear about that part.

Then just apply data() on all data names in your package or bundle the 
data in lists. If you want to load all data object all the time you load 
your package, I'd recommend to enable lazy loading of the data, so you 
do not need to explicitly load by data are loaded on demand.

Best,
Uwe Ligges


>
>
> 2011/3/28 Uwe Ligges<ligges at statistik.tu-dortmund.de>
>
>>
>>
>> On 24.03.2011 16:51, andrew stewart wrote:
>>
>>> Hello all,
>>>
>>> I have,say 4 R objects...  bar1, bar2, bar3, bar4.. that I'd like to
>>> include
>>> in an R package "foobar".
>>>
>>> The desired functionality would be:
>>>
>>>   library(foobar)
>>>> data(foo)
>>>> ls()
>>>>
>>> [1] "bar1" "bar2" "bar3" "bar4"
>>>
>>> I've tried the following two approaches:
>>>
>>> 1) I created the file 'datalist' under pre-build directory 'foobar/data/'
>>> with the following contents:
>>> foo: bar1 bar2 bar3 bar4
>>>
>>> After package build and install, "data(foo)" reports that data set 'foo'
>>> not
>>> found (bar1, bar2, etc are all available individually, and are listed
>>> under
>>> data() as "bar1 (foo)".
>>>
>>
>>
>> If you want just one object "foo", then prpare a list
>>
>> foo<- list(bar1,...)
>>
>> that contains the 4 objects bar1, ... .
>> You can load that objects and access the list components afterwards.
>>
>> I think you misunderstood the data concept: You can save objects and load
>> them if the package is installed. That's it.
>>
>> Best,
>> Uwe Ligges
>>
>>
>>
>>   2) I created an image via save.image resulting in foo.rda (containing
>>> bar1,
>>> bar2, etc).
>>>
>>> data(foo) now loads bar1 - bar4, but 'foo' doesn't appear in the list of
>>> available datasets displayed when trying to tab complete within data().
>>>
>>>
>>> So my question is, what's the correct approach for what I'm trying to do
>>> here?  Any advice welcome and appreciated.
>>>
>>> Thanks,
>>> Andrew
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>>
>



More information about the R-devel mailing list