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 <tr...@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 <li...@dewey.myzen.co.uk> 
> Sendt: 13. januar 2019 12:56
> Til: Troels Ring <tr...@gvdnet.dk>; package-develop 
> <r-package-devel@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@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@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....@cbs.dk  Priv: pda...@gmail.com

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to