Site icon R-bloggers

Updates to the Big Book of R

[This article was first published on R - datawookie, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

The Big Book of R provides a comprehensive and ever-growing overview of a broad selection of R programming books. It was created and is maintained by Oscar Baruffa. The collection began with approximately 100 books and, with the help of contributions from the R community, has subsequently expanded to over 400. The books are grouped into topics such as geospatial, machine learning, statistics, text analysis, and many more. The Big Book of R is an excellent resource for anyone learning R programming, whether they are a beginner or advanced user.

What we set out to do

Fathom Data uses R extensively in our consulting work. We took on the migration of the Big Book of R from Bookdown to Quarto as a way of giving back to the R community, to which we owe so much. This migration offers several advantages such as:

Where we started

We began with a GitHub repository that contained the R Markdown project for the book. This repository had three main parts: a preface, a page about various R communities, and the main script. The main script pulls book data from Google Sheets, sorts it into chapters, and creates a well-organised report. This report includes detailed information about the authors and books, which is used to render each chapter in the book.

Approach

Our approach involved setting up a new Quarto book project, to which we gradually transferred files. The first two R Markdown (.Rmd) files were converted into Quarto markdown format (.qmd). We didn’t need the index file because Quarto operates with a _quarto.yml file that defines the book structure. All configuration options were transferred from the index to the _quarto.yml file and the rest of the content was incorporated into the index.qmd file.

Challenges

Unlike Markdown, where a single script could render the book by fetching data from Google Sheets, Quarto required a different approach.

Quarto needs each chapter to be its own .qmd file within the project folder, and these files must be listed in _quarto.yml. We achieved this by developing a script that retrieves information from Google Sheets for each chapter, saves each chapter as an individual .qmd file, and creates a list of all the .qmd files as a text file. This made it simpler to update the _quarto.yml file with new or modified chapter titles.

Lessons learned

Finished product

The finished product retains the structural essence of the original Bookdown format, with several enhancements. It features a book cover and CSS styling that improves the visual appeal of the book, which includes an easy to use light and dark mode toggle. Additionally, each chapter is equipped with its own table of contents, making it much easier for readers to navigate.

Why this is an improvement

Quarto facilitates easier collaboration with its multilingual and multi-engine support. This is ideal for projects that involve multiple programming languages or the integration of various data sources and analytical tools.

Using a script to organise content into separate .qmd files for each chapter allows for more efficient document management. This modular structure enables independent editing, version control, and reuse of individual chapters without impacting the overall document, making it suitable for large projects with numerous contributors.

Furthermore, Quarto’s support for a variety of output formats and customisations, such as websites, PDFs, and slides, improves the functionality and aesthetics of the outputs.

Future steps

The configuration of the book simplifies its maintenance. Changes to the _quarto.yml file are required only for significant updates, such as the introduction of a new chapter within Google Sheets. This setup ensures that maintenance of the book remains straightforward and manageable over time.

We’re confident that this change to the underlying infrastructure of the Big Book of R will place the project on a solid foundation, which will ensure that it continues to be one of the best resources for information about R.

To leave a comment for the author, please follow the link and comment on their blog: R - datawookie.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Exit mobile version