[R-pkg-devel] RData files with identical objects in package
Troels Ring
tring @ending from gvdnet@dk
Mon Jan 14 17:24:46 CET 2019
Thanks a lot - for my purpose right now I seem to prosper from not loading
lazy
All best
Troels
-----Oprindelig meddelelse-----
Fra: peter dalgaard <pdalgd using gmail.com>
Sendt: 14. januar 2019 15:17
Til: Troels Ring <tring using gvdnet.dk>
Cc: Michael Dewey <lists using dewey.myzen.co.uk>; package-develop
<r-package-devel using r-project.org>
Emne: Re: [R-pkg-devel] RData files with identical objects in package
There is (of course) a difference between what is the default for a
(missing) field in DESCRIPTION and what shells like RStudio put into the
field by default...
I don't think there is a discrepancy between what is in the official
documentation and what R and R CMD * actually does.
-pd
> On 14 Jan 2019, at 07:10 , Troels Ring <tring using gvdnet.dk> wrote:
>
> Thank you so much! Perhaps it could be mentioned in the official
> documentation on writing R extensions - even if - if I can read
> English - the default is to avoid "lazyData" loading - and "laxyData"
> loading is in some opposition to loading using data() - whereas - if
> we use RStudio, and make an R documentation file for data, we have it
> ending with:
> \examples{
> data(ddd)
> ## maybe str(ddd) ; plot(ddd) ...
> }
> \keyword{datasets}
>
> At the same time as "lazyData" is used default in DESCRIPTION ?
>
> 1.1.6 Data in packages
> The data subdirectory is for data files, either to be made available
> via lazy-loading or for loading using data(). (The choice is made by
> the 'LazyData' field in the DESCRIPTION file: the default is not to do
> so.) It should not be used for other data files needed by the package,
> and the convention has grown up to use directory inst/extdata for such
files.
>
> All best wishes
> Troels
>
>
> -----Oprindelig meddelelse-----
> Fra: peter dalgaard <pdalgd using gmail.com>
> Sendt: 13. januar 2019 22:00
> Til: Troels Ring <tring using gvdnet.dk>
> Cc: Michael Dewey <lists using dewey.myzen.co.uk>; package-develop
> <r-package-devel using r-project.org>
> Emne: Re: [R-pkg-devel] RData files with identical objects in package
>
> I think it is illegal if you use the lazyload database, because that
> is indexed by name and contains every object that would be created by
data().
> This creates an obvious issue if two objects share a name.
>
> Once you use the lazyload database, loading the package creates an
> environment which is initially full of promises, one for each object.
> Evaluating one of these makes the actual object appear in the environment.
>
> Using data() causes the corresponding promise(s) to be created in the
> global environment. IIRC, there is a registry that says which objects
> are created by which arguments to data(), but as they are still taken
> from the lazydata database, the last one created with a given name still
wins.
>
> -ps
>
>> On 13 Jan 2019, at 14:13 , Troels Ring <tring using gvdnet.dk> wrote:
>>
>> Thanks a lot - I'm sure you are right that I could just use different
>> names but I cannot understand why it could cause problem to have two
>> different well formated .RData files in the /data directory both with
>> an "x" - is that really illegal? I cannot see it stated in the
>> official munual - but it is long (wrting r extensions) -BW Troels
>>
>> -----Oprindelig meddelelse-----
>> Fra: Michael Dewey <lists using dewey.myzen.co.uk>
>> Sendt: 13. januar 2019 12:56
>> Til: Troels Ring <tring using gvdnet.dk>; package-develop
>> <r-package-devel using r-project.org>
>> Emne: Re: [R-pkg-devel] RData files with identical objects in package
>>
>> Dear Troels
>>
>> Perhaps I misunderstand what you are trying to do but would it be
>> possible to put each x and y into a list or a dataframe with
>> different names and then modify your usgae to pull them from there?
>> Then there would be no danger of users getting the wrong x and y
>>
>> Michael
>>
>> On 13/01/2019 08:38, Troels Ring wrote:
>>> Dear friends - I have a package under creation making heavy
>>> calculations on chemical/clinical data and I plan to include as
>>> "examples" the use of some literature data used in my papers. To
>>> illustrate what then occurs, I made two RData files consisting only
>>> of x and y with different values for x and y like
>>>
>>> X <- 100
>>>
>>> Y <- 1000
>>>
>>> save(x,y,file="first.RData")
>>>
>>> and then a new x and y in "second" with x <- 45 and y <- 32
>>>
>>> When I put these in a "data" directory of a new package without
>>> further ado in RStudio
>>>
>>> Ctrl-shift-L
>>>
>>> Ctrl-shift-B
>>>
>>>
>>>
>>> .there is a warning
>>>
>>> * installing *source* package 'try' ...
>>>
>>> ** R
>>>
>>> ** data
>>>
>>> *** moving datasets to lazyload DB
>>>
>>> warning: objects 'x', 'y' are created by more than one data call
>>>
>>> ** byte-compile and prepare package for lazy loading
>>>
>>> ** help
>>>
>>> converting help for package 'try'
>>>
>>> *** installing help indices
>>>
>>> finding HTML links ... hello
> html
>>>
>>> done
>>>
>>>
>>>
>>> Now, when I clear the workspace:
>>>
>>>> ls()
>>> character(0)
>>>> devtools::load_all(".")
>>> Loading try
>>>
>>> Restarting R session...
>>>
>>>> library(try)
>>>> ls()
>>> character(0)
>>>> x #-- so even if workspace Is empty x is still kept
>>> [1] 45
>>>> data(first) # and "first" is not seen x
>>> [1] 45
>>>
>>>
>>>
>>> x is still present - and y
>>>
>>>
>>>
>>> I have been reading and searching in "Writing R extensions" but so
>>> far didn't find the clue.
>>>
>>> Seemingly it is the file with the last name that is assessed - when
>>> I rename first.RData to "xfile.RData" we get 100 and 1000.
>>>
>>> Now and then when running ctrl-shift-L and - B we see
>>>
>>>
>>>
>>> Attaches package: 'try'
>>>
>>> The following objects are masked _by_ '.GlobalEnv':
>>> x, y
>>>
>>>
>>>
>>> Sorry for these problems -
>>>
>>> BW
>>> Troels
>>>
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-package-devel using r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>>
>>
>> --
>> Michael
>> http://www.dewey.myzen.co.uk/home.html
>>
>> ______________________________________________
>> R-package-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>
> --
> Peter Dalgaard, Professor,
> Center for Statistics, Copenhagen Business School Solbjerg Plads 3,
> 2000 Frederiksberg, Denmark
> Phone: (+45)38153501
> Office: A 4.23
> Email: pd.mes using cbs.dk Priv: PDalgd using gmail.com
>
>
>
>
>
>
>
>
>
>
--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000
Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes using cbs.dk Priv: PDalgd using gmail.com
More information about the R-package-devel
mailing list