[Rd] [R] Forking and adapting an R package

Gabriel Becker gmbecker at ucdavis.edu
Fri Jul 15 23:23:49 CEST 2016


I'm a little unclear what you're asking, so I may be off base here -
apologize if so - but it sounds like you want

debug(hexbin)


before you call the function. Note that that hexbin is referring function
you will call, NOT the name of the package which happens to be the same
thing. This will cause R-level hexbin closure (function) to be debugged
when it is called.

Note that this won't (particularly easily) work in an Rmd, I think. It
would be much easier to simply run the offending code in your session, as
debugging is interactive anyway.

Is your question how to debug the parts of hexbin that  IIRC call down to C
code?

Best,
~G

On Wed, Jul 13, 2016 at 12:13 AM, <timo at timogrossenbacher.ch> wrote:

> > Duncan Murdoch <murdoch.duncan at gmail.com> hat am 12. Juli 2016 um 19:38
> > geschrieben:
> >
> > On 12/07/2016 7:28 AM, timo at timogrossenbacher.ch wrote:
> > > Hello.
> > >
> > > I'm trying to adapt the package “hexbin” to suit my needs. This is the
> first
> > > time I do this. I've read a bit through Hadley's “R packages”, but now
> I'm
> > > pretty lost (from a workflow point of view). I am using RStudio and
> Hadley's
> > > devtools.
> > >
> > > So I forked the repo I want to adapt:
> https://github.com/grssnbchr/hexbin
> > > and
> > > cloned it using RStudio (I created a new project). What I basically
> want to
> > > do
> > > is adapt the package slightly and use the adapted source on my use
> case (an
> > > Rmd
> > > file in another location) - ideally, I would call the respective
> function
> > > (hexbin::grid.hexagons) in the Rmd and the source code of “hexbin”
> would be
> > > called and debugged (just for understanding what the package “hexbin”
> > > actually
> > > does in that case, I do not have to build it yet, or even publish it).
> What
> > > is
> > > the workflow for this?
> >
> > This is more of an R-devel question, so I've posted my followup there
> > (as well as a private copy to you).
> >
>
> Okay, I'm now subscribed to this list, too.
>
> > The fact that you've forked the package shouldn't matter. You are
> > working in RStudio, so the way to work with a package is:
> >
> > 1. Open the project consisting of your local package.
> > 2. In the Build pane, click on "Build and Reload".
> >
> This works. devtools::build() though throws the same error with the
> vignette as
> with devtools::check(). See below.
>
> > What "Build and reload" does is to install the package from the source
> > in the project, then restart R and load the installed package.
> >
> > Test your code in this new R session. If you're working on a vignette,
> > you can open the vignette, and execute the code chunks one by one.
> >
> Ok. But how do I debug the source code of that package? I.e. I want to
> call a
> function from that package from another, external script (that is not part
> of
> that project), and then jump into the function execution and debug it.
> Because when it's built it's no longer "plain source code", or am I
> completely
> wrong with this? Or/and do I have to make the  external script part of the
> hexbin project?
>
> > If they all succeed in that context, they still might not when you run
> > checks: it *won't* have your package loaded when it compiles a
> > vignette. You need to put an explicit
> >
> > library(hexbin)
> >
> This is actually done in the chunk that fails (it fails on the last line
> here).
>
> library("grid")
> library("hexbin")
> x <- rnorm(1000)
> y <- rnorm(1000)
> ##-- Hexagon Bins: --
> hbin <- hexbin(x,y, xbins = 25)
>
> > in one of the code chunks.
> >
> > Duncan Murdoch
> >
> > >
> > > Also, I tried running devtools::check() and it already fails there:
> > > R version 3.2.5 (2016-04-14) -- "Very, Very Secure Dishes"
> > >
> > > Platform: x86_64-pc-linux-gnu (64-bit)
> > >
> > >> devtools::check()
> > > Updating hexbin documentation
> > > Loading hexbin
> > > Creating a generic function for ‘plot’ from package ‘graphics’ in
> package
> > > ‘hexbin’
> > > Creating a generic function for ‘summary’ from package ‘base’ in
> package
> > > ‘hexbin’
> > > Setting env vars
> > >
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> > > CFLAGS : -Wall -pedantic
> > > CXXFLAGS: -Wall -pedantic
> > > Building hexbin
> > >
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> > > '/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore
> > > --quiet
> > > CMD build '/home/tgrossen/R/hexbin' --no-resave-data --no-manual
> > >
> > > * checking for file ‘/home/tgrossen/R/hexbin/DESCRIPTION’ ... OK
> > > * preparing ‘hexbin’:
> > > * checking DESCRIPTION meta-information ... OK
> > > * cleaning src
> > > * installing the package to build vignettes
> > > * creating vignettes ... ERROR
> > >
> > > Error: processing vignette 'hexagon_binning.Rnw' failed with
> diagnostics:
> > > chunk 1 (label = comphexsq)
> > > Error in eval(expr, envir, enclos) : could not find function “hexbin”
> > > Execution halted
> > > Error: Command failed (1)
> > >
> > > As you can see, I am very much lost. I googled for "adapt R package and
> > > debug"
> > > and so forth but couldn't find any tutorial or anything.
> > >
> > > Thanks,
> > >
> > > Timo
> > >
> > > ______________________________________________
> > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > > 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.
> > >
>
> >
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



-- 
Gabriel Becker, PhD
Associate Scientist (Bioinformatics)
Genentech Research

	[[alternative HTML version deleted]]



More information about the R-devel mailing list