Thanks a lot - for my purpose right now I seem to prosper from not loading lazy All best Troels
-----Oprindelig meddelelse----- Fra: peter dalgaard <pda...@gmail.com> Sendt: 14. januar 2019 15:17 Til: Troels Ring <tr...@gvdnet.dk> Cc: Michael Dewey <li...@dewey.myzen.co.uk>; package-develop <r-package-devel@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 <tr...@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 <pda...@gmail.com> > Sendt: 13. januar 2019 22:00 > Til: Troels Ring <tr...@gvdnet.dk> > Cc: Michael Dewey <li...@dewey.myzen.co.uk>; package-develop > <r-package-devel@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 <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 > > > > > > > > > > -- 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