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

Duncan Murdoch murdoch.duncan at gmail.com
Tue Jul 8 12:49:06 CEST 2014


On 08/07/2014, 12:56 AM, Eva Prieto Castro wrote:
> Duncan,
> 
> Yes, it has exactly that line.
> 
> I know it does not exists because of this:
> 
>> library("ChrL")
>> .ChrL.env
> Error: objeto '.ChrL.env' no encontrado

That says that you did not export it.  It is only visible from code
within the package.

Duncan Murdoch

> 
> 
> 
> However, it should be as follows:
> 
>> library("ChrL")
>> .ChrL.env
> <environment: 0x00000000091eb898>
> 
> 
> I'm desperate; I have to solve this urgently and I don't find the solution.
> 
> Thanks again.
> 
> Eva
> 
> 
> 2014-07-08 1:56 GMT+02:00 Duncan Murdoch <murdoch.duncan at gmail.com
> <mailto:murdoch.duncan at gmail.com>>:
> 
>     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>
>     > <mailto: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>
>     > <mailto: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>>
>     >     > <mailto: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>>
>     >     >     <mailto: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>>
>     >     <mailto: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>>
>     >     <mailto: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