Hi again, Duncan
I think I must tell you all the details of the method I use, in order to
make possible you notice my error. However, you must know that this method
run on 3.0.1 version (not in 3.0.2 and not in 3.1.0; this is the problem!).
1) This is my code in "D:/probando.r" :
.ChrL.env <- new.env()
.ChrL.env$lGlo <- list()
.ChrL.env$bStarted <- FALSE
CheckGloCreated <- function() {
if (.ChrL.env$bStarted == TRUE) {
stop("Data structures were already initialized.", call.=FALSE)
}
}
ChrL.Start <- function() {
CheckGloCreated()
cat("Tested.\n")
}
2) I open RGUI and run the following:
setwd("D:/")
source("probando.r", encoding="utf-8")
package.skeleton(name="ChrL", path="D:/")
3) At this point, ChrL folder has been created in D:/, so I adjust
Description and Namespace files. In R folder, ChrL-internal.r file is as I
indicate below...
>>
>>
>> My Namespace:
>>
>> export(ChrL.Start)
>>
>>
>> My ChrL-internal.R:
>>
>> .ChrL.env <- new.env()
3) I go to bin folder (C:/Program Files/R/R-3.1.0/bin) and run the
following:
R CMD INSTALL D:/ChrL
R CMD check D:/ChrL
R CMD build D:/ChrL
R CMD INSTALL --build D:/ChrL
Consequently, zip is generated, and I load it in RGUI. Then I do
"library(ChrL)", but I see .ChrL.env does not exists. ¡In 3.0.1 version it
run ok!. What is the reason why in 3.1.0 version It does not exists?.
Thanks again.
Eva
2014-07-07 22:49 GMT+02:00 Duncan Murdoch <[email protected]>:
> On 07/07/2014, 2:02 PM, Eva Prieto Castro wrote:
> > Hi eveybody,
> >
> > I think the problem is with the package.skeleton function, because of the
> > changes made in version 3.0.2. Since that version the management of
> > environment parameter is different and I think it can justify the fact of
> > package.skeleton is not considering my environment. I have not tested it
> > yet.
>
> The package.skeleton() function is intended to be used once as a quick
> setup of a new package; you shouldn't be using it routinely. After the
> first quick setup, you should edit the source of the package to get what
> you want.
>
> A few more comments inline...
>
> >
> > Regards.
> >
> > Eva
> >
> >
> > 2014-07-07 10:21 GMT+02:00 Eva Prieto Castro <[email protected]>:
> >
> >> Hi everybody
> >>
> >> I have a very big problem:
> >>
> >> With R 3.0.2 I could construct the package for this code:
> >>
> >>
> >> if (exists('.ChrL.env') == TRUE) {
> >> rm(.ChrL.env)
> >> }
>
> The code above doesn't make sense in a package: either you created the
> environment, or you didn't. That code will look through attached
> packages, and if one of them has a variable of that name, will try to
> remove it (but will likely fail to do so).
>
> >>
> >> .ChrL.env <- new.env()
> >> .ChrL.env$lGlo <- list()
> >> .ChrL.env$bStarted <- FALSE
> >>
> >> CheckGloCreated <- function() {
> >> if (.ChrL.env$bStarted == TRUE) {
> >> stop("Data structures were already initialized.", call.=FALSE)
> >> }
> >> }
> >> ChrL.Start <- function() {
> >> CheckGloCreated()
> >>
> >> cat("Libraries have been loaded and data structure has been
> >> initialized.\n")
> >> }
> >>
> >>
> >>
> >> As you can do, I used an own environment (.ChrL.env).
> >>
> >>
> >> Now, with R 3.1.0, I construct the package and I load it but it seems
> >> .ChrL.env does not exists.
> >>
> >>
> >> The method I use is the following:
> >>
> >>
> >> rm(list=ls())
> >>
> >> setwd("D:/probando")
> >>
> >> source("probando.r", encoding="utf-8")
> >>
> >> package.skeleton(name="ChrL", path="D:/probando")
>
> This says that you read the file d:/probando/probando.r, then created a
> package in the same directory. Don't do that. Create the package
> somewhere else, and copy the source to your functions into the R
> subdirectory that gets created.
>
> >>
> >>
> >> My Namespace:
> >>
> >> export(ChrL.Start)
> >>
> >>
> >> My ChrL-internal.R:
> >>
> >> .ChrL.env <- new.env()
>
> As far as I can see, you never added this to the package, so the
> environment wouldn't be created.
>
> Duncan Murdoch
>
> >>
> >>
> >> Could you help me, please?. It is very urgent...
> >>
> >>
> >> My project is more complex that the example I put, but I have tested
> with
> >> this simple example and the problem is the same.
> >>
> >>
> >> Thank you in advance.
> >>
> >>
> >> Regards,
> >>
> >> Eva
> >> [[alternative HTML version deleted]]
> >>
> >>
> >> _______________________________________________
> >> R-help-es mailing list
> >> [email protected]
> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> >>
> >>
> >
> > [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > [email protected] mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
> >
>
>
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.