[R] RMarkdown vignettes v. Jupyter notebooks?

Ista Zahn |@t@z@hn @end|ng |rom gm@||@com
Thu Oct 11 16:39:42 CEST 2018


On Thu, Oct 11, 2018 at 10:23 AM Yihui Xie <xie using yihui.name> wrote:
>
> In case Jeff's point was not clear enough: the *.nb.html file is very
> similar to *.ipynb and it is very different with other output formats
> that R Markdown generates. A .nb.html file is generated alongside .Rmd
> when you preview an R Markdown notebook, and it contains both the R
> Markdown source document and its output (in a single file). See
> Section 3.2.2 of the R Markdown book for more info:
> https://bookdown.org/yihui/rmarkdown/notebook.html

Thank you Yihui, you have once again rescued me from a state of
ignorance. Much appreciated.

--Ista

>
> But I think you are correct that R Markdown and Jupyter have different emphasis.
>
> Regards,
> Yihui
> --
> https://yihui.name
>
> On Thu, Oct 11, 2018 at 9:14 AM Ista Zahn <istazahn using gmail.com> wrote:
> >
> > On Thu, Oct 11, 2018 at 10:03 AM Jeff Newmiller
> > <jdnewmil using dcn.davis.ca.us> wrote:
> > >
> > > Ista, you do not seem to be aware of the
> > > .nb.html format, which is way easier to share with a non-uswr than an ipynb file yet allows the same in-progress kinds of results to be shared and the source can be extracted easily using a web browser (no server needed).
> >
> > Yes, I am aware that notebooks can be exported / converted to other
> > formats, including .html and .pdf. My point is about emphasis:
> > Rmarkdown gives you header arguments and other tools that allow you a
> > great deal of control over how the final .html or .pdf file looks. The
> > system seems designed to produce .html or .pdf as the final output
> > format. Jupyter notebooks on the other hand seem primarily designed to
> > be viewed as Jupyter notebooks: they don't give you a log of tools for
> > controlling how the converted / exported notebook appears. That's not
> > so say there is not conversion / export possible of course...
> >
> > --Ista
> >
> > >
> > > There is some controversy about this whole notebook approach [1] but I think deciding whether it is right for your purposes is highly subjective.
> > >
> > > FWIW It took me years to figure out how to even open a Jupyter notebook, so the idea that they should be the gold standard for sharing results seems absurd to me.
> > >
> > > [1] https://yihui.name/en/2018/09/notebook-war/
> > >
> > > On October 11, 2018 5:53:29 AM PDT, Ista Zahn <istazahn using gmail.com> wrote:
> > > >On Thu, Oct 11, 2018 at 8:36 AM Duncan Murdoch
> > > ><murdoch.duncan using gmail.com> wrote:
> > > >>
> > > >> On 11/10/2018 7:18 AM, Ista Zahn wrote:
> > > >> > Hi Spencer,
> > > >> >
> > > >> > On Thu, Oct 11, 2018 at 5:08 AM Spencer Graves
> > > >> > <spencer.graves using effectivedefense.org> wrote:
> > > >> >>
> > > >> >> Hello:
> > > >> >>
> > > >> >>
> > > >> >>         What are the differences between Jupyter notebooks and
> > > >RMarkdown
> > > >> >> vignettes?
> > > >> >
> > > >> > Here are some of the main differences I'm aware of:
> > > >> >
> > > >> > Rmarkdown files include code and prose. The results produced by the
> > > >> > code do not appear in the Rmarkdown file; instead, the file must be
> > > >> > processed and typeset to produce a .pdf or .html (etc.) file that
> > > >> > includes those results. Jupyter notebooks dispense with with
> > > >> > processing step: output is displayed directly in the notebook. That
> > > >> > is, a notebook includes code, prose, and results, while an
> > > >Rmarkdown
> > > >> > file includes only code and prose.
> > > >>
> > > >> RStudio can display the output mixed in with the text in the editor.
> > > >
> > > >True, but the _file_ does not include the output. Thus it functions
> > > >more as a preview, and will not be visible to you if I email you a
> > > >.Rmd file. On the other hand, .ipynb files really do contain the
> > > >output; if I email one to you and you open it in Jupyter you will see
> > > >the output as well.
> > > >
> > > >--Ista
> > > >
> > > >>
> > > >> >
> > > >> > Rmarkdown allows control over the inclusion of code and results,
> > > >and
> > > >> > over how the results are displayed via header arguments. There is
> > > >no
> > > >> > such thing in Jupyter notebooks. Controlling the precise appearance
> > > >of
> > > >> > a document produced by Jupyter is much more difficult. Going
> > > >farther,
> > > >> > one can even say that Jupyter notebooks are designed primarily to
> > > >be
> > > >> > read as Jupyter notebooks; exporting to other formats is kind of an
> > > >> > afterthought. In contrast, Rmarkdown is designed to produce the
> > > >final
> > > >> > readable result in another format (.html or .pdf typically).
> > > >> >
> > > >> > Rmarkdown is based on markdown, a human readable markup language,
> > > >> > Jupyter notebooks are based on JSON, a data interchange format
> > > >common
> > > >> > on the web. This means that Rmarkdown files can be easily edited
> > > >using
> > > >> > any text editor you like. The same is not true of Jupyter
> > > >notebooks.
> > > >> > While you can of course edit the JSON directly, the format is
> > > >designed
> > > >> > to be written and read by a computer; editing it yourself is not
> > > >easy.
> > > >> >
> > > >> > Rmarkdown is specific to R (I guess there is some basic support in
> > > >> > knitr for other languages, but in my experience it never worked
> > > >well)
> > > >> > while Jupyter notebooks are language agnostic and "kernels" exist
> > > >for
> > > >> > a large number of programming languages. However, each Jupyter
> > > >> > notebook can use only one kernel; you can't easily have R and
> > > >Python
> > > >> > code in the same notebook.
> > > >> >
> > > >> > Jupyter notebooks typically run in your browser where the actual
> > > >text
> > > >> > editing features are somewhat limited. Rmarkdown is typically run
> > > >in
> > > >> > an editor such as Emacs or Rstudio where editing and project
> > > >support
> > > >> > is much better and greater customization may be possible. You can
> > > >work
> > > >> > indirectly with Jupyter notebooks in Emacs
> > > >> > (https://github.com/millejoh/emacs-ipython-notebook) and perhaps
> > > >other
> > > >> > editors as well; this goes some way toward escaping the tyranny of
> > > >the
> > > >> > browser but is more fragile and difficult to get working compared
> > > >to
> > > >> > Rmarkdown.
> > > >> >
> > > >> > Because Jupyter uses a web-based client-server model, it is easy to
> > > >> > provide live interactive notebooks on your website (see e.g.,
> > > >> > https://github.com/jupyterhub/binderhub). As far as I know this is
> > > >not
> > > >> > currently possible with Rmarkdown.
> > > >>
> > > >> There are ways to put Shiny apps into Rmarkdown documents; see
> > > >>
> > > ><https://beta.rstudioconnect.com/content/2671/Combining-Shiny-R-Markdown.html>.
> > > >>   Other than my two notes above, your comments about Rmarkdown seem
> > > >> right on the mark.
> > > >>
> > > >> Duncan Murdoch
> > > >>
> > > >> >
> > > >> >>
> > > >> >>
> > > >> >>         I'm trying to do real time monitoring of the broadcast
> > > >quality of
> > > >> >> a radio station, and it seems to me that it may be easier to do
> > > >that in
> > > >> >> Python than in R.[1]  This led me to a recent post to
> > > >> >> "python-list using python.org" that mentioned "Jupyter, Mathematica, and
> > > >the
> > > >> >> Future of the Research Paper"[2] by Paul Romer, who won the 2018
> > > >Nobel
> > > >> >> Memorial Prize in Economics only a few days ago.  In brief, this
> > > >article
> > > >> >> suggests that Jupyter notebooks may replace publication in
> > > >refereed
> > > >> >> scientific journals as the primary vehicle for sharing scientific
> > > >> >> research, because they make it so easy for readers to follow both
> > > >the
> > > >> >> scientific and computational logic and test their own
> > > >modifications.
> > > >> >>
> > > >> >>
> > > >> >>         A "Jupyter Notebook Tutorial: The Definitive Guide"[3]
> > > >suggested
> > > >> >> I first install Anaconda Navigator.  I got version 1.9.2 of that.
> > > >It
> > > >> >> opens with options for eight different "applications" including
> > > >> >> JupyterLab 0.34.9, Jupyter Notebook 5.6.0, Spyder 3.3.1 (an IDE
> > > >for
> > > >> >> Python), and RStudio 1.1.456.
> > > >> >>
> > > >> >>
> > > >> >>         This leads to several questions:
> > > >> >>
> > > >> >>
> > > >> >>               1.  In general, what experiences have people had
> > > >with
> > > >> >> Jupyter Notebooks, Anaconda Navigator, and RMarkdown vignettes in
> > > >> >> RStudio, and the similarities and differences?  Do you know any
> > > >> >> references that discuss this?
> > > >> >
> > > >> > I've used both extensively, and noted the differences I've
> > > >discovered above.
> > > >> >
> > > >> >>
> > > >> >>
> > > >> >>               2.  More specifically, does it make sense to try to
> > > >use
> > > >> >> RStudio from within Anaconda Navigator, or is one better off using
> > > >> >> RStudio as a separate, stand alone application -- or should one
> > > >even
> > > >> >> abandon RStudio and run R instead from within a Jupyter Notebook?
> > > >[I'm
> > > >> >> new to this topic, so it's possible that this question doesn't
> > > >even make
> > > >> >> sense.]
> > > >> >
> > > >> > The only advantage I can think of to using Rstudio via Anaconda is
> > > >> > that you could use conda environments to maintain different
> > > >versions
> > > >> > or R and/or R packages for different projects.
> > > >> >
> > > >> > You'll have to weigh the pros and cons to decide whether to switch
> > > >> > from Rstudio to Jupyter notebooks. Depending on what you want to do
> > > >> > there are both advantages and disadvantages, as discussed above.
> > > >> >
> > > >> > Finally, I have to give a plug for a couple of related tools that I
> > > >> > find very useful.
> > > >> >
> > > >> > Emacs org-mode https://orgmode.org/ gives you the best of both
> > > >worlds:
> > > >> > notebooks unconstrained by the browser that can include code in
> > > >> > multiple languages, header arguments, excellent export support,
> > > >etc.
> > > >> > It is superior to both Jupyter and Rmarkdown, except that support
> > > >only
> > > >> > exists in Emacs.
> > > >> >
> > > >> > Jupytext (https://github.com/mwouts/jupytext) is another way to
> > > >have
> > > >> > it all, by allowing you to edit in markdown or Rmarkdown, and
> > > >> > auto-generating a notebook and possibly other formats for you. I've
> > > >> > only recently started experimenting with it, but so far I like it a
> > > >> > lot.
> > > >> >
> > > >> > Best,
> > > >> > Ista
> > > >> >>
> > > >> >>
> > > >> >>         Thanks,
> > > >> >>         Spencer Graves
> > > >> >>
> > > >> >>
> > > >> >> [1] If you have ideas for how best to do real time monitoring of
> > > >> >> broadcast quality of a radio station, I'd love to hear them.  I
> > > >need
> > > >> >> software that will do that, preferably something that's free, open
> > > >> >> source.  The commercial software I've seen for this is not
> > > >adequate for
> > > >> >> my purposes, so I'm trying to write my own.  I have a sample
> > > >script in
> > > >> >> Python that will read a live stream from a radio tuner and output
> > > >a
> > > >> >> *.wav of whatever length I want, and I wrote Python eight years
> > > >ago for
> > > >> >> a similar real time application.  I'd prefer to use R, but I don't
> > > >know
> > > >> >> how to get started.
> > > >> >>
> > > >> >>
> > > >> >> [2] 2018-04-13:
> > > >> >>
> > > >"https://paulromer.net/jupyter-mathematica-and-the-future-of-the-research-paper".
> > > >> >> This further cites a similar article in The Atlantic from
> > > >2018-04-05:
> > > >> >>
> > > >"www.theatlantic.com/science/archive/2018/04/the-scientific-paper-is-obsolete/556676".
> > > >> >>
> > > >> >> ______________________________________________
> > > >> >> 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.
> > > >> >
> > > >> > ______________________________________________
> > > >> > 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.
> > > >> >
> > > >>
> > > >
> > > >______________________________________________
> > > >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.
> > >
> > > --
> > > Sent from my phone. Please excuse my brevity.
> >
> > ______________________________________________
> > 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.




More information about the R-help mailing list