[R] [R-es] Consulta paquetización con versión R 3.1.0

Duncan Murdoch murdoch.duncan at gmail.com
Tue Jul 8 01:56:10 CEST 2014


On 07/07/2014, 7:13 PM, Eva Prieto Castro wrote:
> Duncan,
> 
> The ChrL folder has the following components:
> 
> * Description file
> * Namespace file
> * R folder, including 3 files: CheckGloCreated.r, ChrL.Start.r and
> ChrL-internal.r
> 

And does ChrL-internal.r contain just one line as you said before, i.e.

.ChrL.env <- new.env()

?

If so, how have you determined that .ChrL.env does not exist?  Names
that start with a "." don't show up in ls() listings by default. You
can't use exists() to test for .ChrL.env in either of the other files,
because they are probably sourced before it is (depending on the
collation order).  It won't exist when you run them, but it will exist
in the package namespace when you load the package.

Duncan Murdoch

> Obs.: Sometimes I remove man folder and another I adjust the rd files.
> In all cases the result is the same:.ChrL.env does not exist!.
> 
> Description file:
> 
> Package: ChrL
> Type: Package
> Title: What the package does (short line)
> Version: 1.0
> Date: 2014-07-08
> Author: Eva Prieto Castro
> Maintainer: Eva Prieto Castro <yourfault at somewhere.net
> <mailto:yourfault at somewhere.net>>
> Description: Test Pkg
> License: Unlimited
> 
> Namespace file:
> exportPattern("^[[:alpha:]]+")
> 
> I also test with this namespace file:
> export(ChrL.Start)
> 
> Thank you very much, again.
> 
> Eva
> 
> 
> 2014-07-08 0:55 GMT+02:00 Duncan Murdoch <murdoch.duncan at gmail.com
> <mailto:murdoch.duncan at gmail.com>>:
> 
>     On 07/07/2014, 6:39 PM, Eva Prieto Castro wrote:
>     > 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.
> 
>     Your error is in calling package.skeleton.  As I said before, you should
>     have done this once, when you first thought of creating the ChrL
>     package, and *you should never call it again* for that package.
> 
>     The normal workflow after the single call to that function is to edit
>     the files in the ChrL directory.  Don't call package.skeleton again.
> 
>     If you want to describe the problems you are having, you should be
>     describing the contents of the ChrL directory, not how they were
>     created.  That is normally irrelevant, except that in your case, I think
>     that is the source of the problem.
> 
>     Duncan Murdoch
> 
>     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
>     <murdoch.duncan at gmail.com <mailto:murdoch.duncan at gmail.com>
>     > <mailto:murdoch.duncan at gmail.com <mailto:murdoch.duncan at gmail.com>>>:
>     >
>     >     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
>     <evapcastro at yahoo.es <mailto:evapcastro at yahoo.es>
>     >     <mailto:evapcastro at yahoo.es <mailto:evapcastro at yahoo.es>>>:
>     >     >
>     >     >> 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
>     >     >> R-help-es at r-project.org <mailto:R-help-es at r-project.org>
>     <mailto:R-help-es at r-project.org <mailto:R-help-es at r-project.org>>
>     >     >> https://stat.ethz.ch/mailman/listinfo/r-help-es
>     >     >>
>     >     >>
>     >     >
>     >     >       [[alternative HTML version deleted]]
>     >     >
>     >     > ______________________________________________
>     >     > R-help at r-project.org <mailto:R-help at r-project.org>
>     <mailto:R-help at r-project.org <mailto:R-help at r-project.org>> 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.
>     >     >
>     >
>     >
> 
>



More information about the R-help mailing list