From mcneney at sfu.ca  Fri Apr  6 22:54:17 2012
From: mcneney at sfu.ca (Brad McNeney)
Date: Fri, 6 Apr 2012 13:54:17 -0700 (PDT)
Subject: [Rd] R CMD check returns NOTE about package data set as global
 variable
In-Reply-To: <alpine.LFD.2.02.1204062036460.17273@gannet.stats.ox.ac.uk>
Message-ID: <2067867532.18287973.1333745657817.JavaMail.root@jaguar9.sfu.ca>

Thanks (to all), using LazyData removes the note.

Brad

----- Original Message -----
> From: "Prof Brian Ripley" <ripley at stats.ox.ac.uk>
> To: "Brad McNeney" <mcneney at sfu.ca>
> Cc: r-devel at r-project.org
> Sent: Friday, 6 April, 2012 12:43:22 PM
> Subject: Re: [Rd] R CMD check returns NOTE about package data set as global variable
> 
> On Fri, 6 Apr 2012, Brad McNeney wrote:
> 
> > OK, thanks for the tip on good coding practice. I'm still getting
> > the NOTE though when I make the suggested change.
> 
> Yes, you will:  data() is a function with side effects, which is
> contrary to the functional programming model being checked.  So there
> is no way to avoid all notes and use data().
> 
> If you want to make your code more understandable, consider using
> LazyData (see 'Writing R Extensions').  My view is that data() is a
> kludge from long ago when R had much less powerful memory management,
> except perhaps for very large datasets (at least 100MBs) when you may
> want to control when they are loaded into memory.
> 
> >
> > In case it matters, I'm check'ing with
> >
> > R version 2.15.0 (2012-03-30)
> > Platform: i386-pc-mingw32/i386 (32-bit)
> >
> > Brad
> >
> > ----- Original Message -----
> >> From: "Prof Brian Ripley" <ripley at stats.ox.ac.uk>
> >> To: "Brad McNeney" <mcneney at sfu.ca>
> >> Cc: r-devel at r-project.org
> >> Sent: Friday, 6 April, 2012 12:18:14 PM
> >> Subject: Re: [Rd] R CMD check returns NOTE about package data set
> >> as global variable
> >>
> >> On 06/04/2012 19:46, Brad McNeney wrote:
> >>> I'm developing a package that comes with a data set called
> >>> RutgersMapB36. One of the package's functions requires this data
> >>> frame. A toy example is:
> >>>
> >>> test<-function() {
> >>>    data(RutgersMapB36)
> >>>    return(RutgersMapB36[,1])
> >>> }
> >>>
> >>>
> >>> R CMD check returns a NOTE:
> >>>
> >>> test: no visible binding for global variable 'RutgersMapB36'
> >>>
> >>> Is there any way to avoid this NOTE?
> >>
> >> Use data("RutgersMapB36"), which many think is good practice in
> >> code.
> >>
> >>
> >>>
> >>> Thanks,
> >>>
> >>> Brad
> >>> ---
> >>> Brad McNeney
> >>> Statistics and Actuarial Science
> >>> Simon Fraser University
> >>>
> >>> ______________________________________________
> >>> R-devel at r-project.org mailing list
> >>> https://stat.ethz.ch/mailman/listinfo/r-devel
> >>
> >>
> >> --
> >> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> >> Professor of Applied Statistics,
> >>  http://www.stats.ox.ac.uk/~ripley/
> >> University of Oxford,             Tel:  +44 1865 272861 (self)
> >> 1 South Parks Road,                     +44 1865 272866 (PA)
> >> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
> >>
> >
> 
> --
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>



[Rd] R CMD check returns NOTE about package data set as global variable
Brad McNeney