[R] Debugging Rmarkdown

William Dunlap wdun|@p @end|ng |rom t|bco@com
Sat Apr 20 00:58:55 CEST 2019


You can set the error handler to save the current state of R in a file,
"last.dump.rda" in the current working directory, when an error occurs with
   options(error=expression(dump.frames(to.file=TRUE,
include.GlobalEnv=TRUE)))
In another R session you can look at what it saved with
   load("last.dump.rda")
   debugger(last.dump)

Bill Dunlap
TIBCO Software
wdunlap tibco.com


On Fri, Apr 19, 2019 at 3:05 PM Patrick Connolly <p_connolly using slingshot.co.nz>
wrote:

> There are options to set echo and messages but AFAIK, the text appears
> in the resultant file, but if the script fails, there's no file to inspect.
>
> On 20/04/19 9:50 AM, Bert Gunter wrote:
> > This might be offbase, but do you need to set options to cache the
> > results in the original code chunks to reuse in later chunks? (I
> > haven't worked with knitr lately, so this may be nonsense).
> >
> > Cheers,
> > Bert
> >
> > On Fri, Apr 19, 2019 at 2:03 PM Patrick Connolly
> > <p_connolly using slingshot.co.nz <mailto:p_connolly using slingshot.co.nz>> wrote:
> >
> >
> >     On 19/04/19 12:13 AM, Thierry Onkelinx wrote:
> >     > Dear Patrick,
> >     >
> >     > This is not easy to debug without a reprex
> >     >
> >     > I would check the content of zzz and wide.i in the loop
> >     >
> >     > str(wide.i)
> >     >  zzz <- rbind(zzz, wide.i)
> >     > str(zzz)
> >     >
> >     That's just what I'm trying to achieve but the debugging doesn't work
> >     how it does with regular R code.
> >
> >     > Note that the Rmd always runs in a clean environment. This might
> >     > explain the difference
> >     >
> >     The data frames xx and yy are defined in earlier code chunks. Maybe I
> >     need to define them again.
> >
> >
> >     I'll look closer at it after Easter.
> >
> >
> >     Thanks for the suggestion.
> >
> >     > Best regards,
> >     >
> >     > ir. Thierry Onkelinx
> >     > Statisticus / Statistician
> >     >
> >     > Vlaamse Overheid / Government of Flanders
> >     > INSTITUUT VOOR NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR
> >     NATURE
> >     > AND FOREST
> >     > Team Biometrie & Kwaliteitszorg / Team Biometrics & Quality
> >     Assurance
> >     > thierry.onkelinx using inbo.be <mailto:thierry.onkelinx using inbo.be>
> >     <mailto:thierry.onkelinx using inbo.be <mailto:thierry.onkelinx using inbo.be>>
> >     > Havenlaan 88 bus 73, 1000 Brussel
> >     > www.inbo.be <http://www.inbo.be> <http://www.inbo.be>
> >     >
> >     >
> >
>  ///////////////////////////////////////////////////////////////////////////////////////////
> >     > To call in the statistician after the experiment is done may be no
> >     > more than asking him to perform a post-mortem examination: he
> >     may be
> >     > able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
> >     > The plural of anecdote is not data. ~ Roger Brinner
> >     > The combination of some data and an aching desire for an answer
> >     does
> >     > not ensure that a reasonable answer can be extracted from a
> >     given body
> >     > of data. ~ John Tukey
> >     >
> >
>  ///////////////////////////////////////////////////////////////////////////////////////////
> >     >
> >     > <https://www.inbo.be>
> >     >
> >     >
> >     > Op do 18 apr. 2019 om 11:53 schreef Patrick Connolly
> >     > <p_connolly using slingshot.co.nz <mailto:p_connolly using slingshot.co.nz>
> >     <mailto:p_connolly using slingshot.co.nz
> >     <mailto:p_connolly using slingshot.co.nz>>>:
> >     >
> >     >     I have a function that works in ESS, but it fails if I
> >     include it in
> >     >     an .Rmd file that I tried to knit using Rstudio.  I found
> >     advice at:
> >     >
> >
> https://www.rstudio.com/products/rstudio/release-notes/debugging-with-rstudio/
> >     >
> >     >     It seems to be not referring to markdown files. Somewhere else
> >     >     suggested calling render() in the console pane.  I tried
> >     that.  The
> >     >     browser() function interrupts correctly, but I can't find
> >     out what the
> >     >     object zzz in the code below looks like.  Nothing prints the
> >     way it
> >     >     would in a "normal" R buffer.
> >     >
> >     >     code outline:  making zzz out of two dataframes xx and yy
> >     >
> >     >     ##
> >     >         zzz <- NULL
> >     >         for(i in xx$Sample){
> >     >             raw.i <- <stuff>
> >     >
> >     >             etc. etc.
> >     >
> >     >             zzz <- rbind(zzz, wide.i)
> >     >     }
> >     >        browser()
> >     >
> >     >         names(zzz) <- c("Cultivar", "Test", "Change")
> >     >     That line fails, with a complaint about zzz being NULL.
> >     >
> >     >     It appears as though the rbind doesn't do anything, but I
> >     can't see
> >     >     what wide.i looks like to get an idea what could be the cause.
> >     >
> >     >     Ideas what I should try are welcome.  I have no idea why the
> >     code
> >     >     works in an R environment but not an Rmd one.
> >     >
> >     >
> >     >     R-3.5.2,
> >     >     platform       x86_64-pc-linux-gnu
> >     >     arch           x86_64
> >     >     os             linux-gnu
> >     >     system         x86_64, linux-gnu
> >     >
> >     >     Rstudio Version 1.1.383
> >     >
> >     >
> >     >
> >     >     --
> >     >
> >
>   ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.
> >     >
> >     >        ___    Patrick Connolly
> >     >      {~._.~}                   Great minds discuss ideas
> >     >      _( Y )_                 Average minds discuss events
> >     >     (:_~*~_:)                  Small minds discuss people
> >     >      (_)-(_)                              ..... Eleanor Roosevelt
> >     >
> >     >
> >
>   ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.
> >     >
> >     >     ______________________________________________
> >     > R-help using r-project.org <mailto:R-help using r-project.org>
> >     <mailto:R-help using r-project.org <mailto:R-help using 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.
> >     >
> >
> >             [[alternative HTML version deleted]]
> >
> >     ______________________________________________
> >     R-help using r-project.org <mailto:R-help using 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.
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list