<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Reproducibility on rostrum.blog</title>
    <link>https://www.rostrum.blog/tags/reproducibility/</link>
    <description>Recent content in Reproducibility on rostrum.blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <lastBuildDate>Wed, 27 Apr 2022 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://www.rostrum.blog/tags/reproducibility/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Turn the {tide} on R&#39;s secret spreadsheet editor</title>
      <link>https://www.rostrum.blog/2022/04/27/tide/</link>
      <pubDate>Wed, 27 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/04/27/tide/</guid>
      <description>tl;dr R has an interactive spreadsheet editor for dataframes that you can access with edit(). I made the function tide::tide() to generate automatically some code that will reproduce the changes you made manually with edit().
 Edit R’s edit() function invokes a text editor so you can amend an R object.1
Something special happens If you edit() a data.frame object: a somewhat-janky interactive spreadsheet-like editor appears in a new window.</description>
    </item>
    
    <item>
      <title>Reproducible {distill} posts with {renv} profiles</title>
      <link>https://www.rostrum.blog/2022/03/15/renv-profiles/</link>
      <pubDate>Tue, 15 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2022/03/15/renv-profiles/</guid>
      <description>tl;dr I think you can use the {renv} package to create separate reproducible environment profiles for each of your {distill} blog posts.
 Profiled Functionality comes and goes in R packages. How do you deal with that in the context of a blog built with R? What if you need to go back and change something in a post from four years ago?1
I built a demo {distill} blog to test whether the {renv} package might be a viable solution for reproducibility on a post-by-post basis.</description>
    </item>
    
    <item>
      <title>Hit your reproducibility {targets}</title>
      <link>https://www.rostrum.blog/2020/09/27/targets-dsfest/</link>
      <pubDate>Sun, 27 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/09/27/targets-dsfest/</guid>
      <description>An excuse to use the dam good (lol) beavers1 data (Nature on PBS via Giphy)  tl;dr I spoke at the UK Government Data Science Festival about Will Landau’s R package {targets} for workflow reproducibility. You can jump to the embedded slides below.
 {targets} Reproducibility is an important part of any data analysis. Will people be able to re-run your code from scratch on a different machine without you present?</description>
    </item>
    
    <item>
      <title>Owning the shame of my old R code</title>
      <link>https://www.rostrum.blog/2020/04/17/r-self-shame/</link>
      <pubDate>Fri, 17 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/04/17/r-self-shame/</guid>
      <description>Bemusement (all images from Brehm’s Life of Animals, 1895)  tl;dr In which I reflect on my past-self’s journey toward better R code.
This post suggests alternatives to file.choose(), setwd() and attach(); encourages sensible project structure; and talks about the benefit of writing functions.
 A startling discovery I dug up a time capsule from a decade ago. It contained poorly constructed R code.
Twist: it was me who wrote it.</description>
    </item>
    
    <item>
      <title>Iterate parameterised {xaringan} reports</title>
      <link>https://www.rostrum.blog/2020/03/12/knit-with-params/</link>
      <pubDate>Thu, 12 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/03/12/knit-with-params/</guid>
      <description>Driving a Wedge (via Giphy)  tl;dr You want to use R to generate multiple reports from a single template, each containing different data.
How? Create a parameterised RMarkdown template with a params YAML argument. Iterate over param values with rmarkdown::render() inside purrr::map().
I made a demo of this approach that focuses on parameterised {xaringan} slides. It includes a further {purrr} step with pagedown::chrome_print() to render the HTML outputs to PDF.</description>
    </item>
    
    <item>
      <title>{orderly} and {drake} at Bioinformatics London</title>
      <link>https://www.rostrum.blog/2020/01/31/reprobioinformatics/</link>
      <pubDate>Fri, 31 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/01/31/reprobioinformatics/</guid>
      <description>REPRODUCIBILITY 4 LYFE (via Bioinformatics London’s Meetup page)  tl;dr I spoke at the latest Bioinformatics London Meetup (event link, Twitter) about workflow reproducibility tools in R. I explained the benefits of Will Landau’s {drake} package for doing this.
 Order, order Rich FitzJohn opened proceedings with an excellent introduction to his {orderly} package (source) that is intended for ‘lightweight reproducible reporting’.
In short, the user declares inputs (anything, including things like SQL queries and CSV files) and artefacts (results) of their analysis.</description>
    </item>
    
    <item>
      <title>Reproducibility in R: three things</title>
      <link>https://www.rostrum.blog/2020/01/22/repro-three-things/</link>
      <pubDate>Wed, 22 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/01/22/repro-three-things/</guid>
      <description>Avoid being this guy (Threddy the T. rex via Giphy)  Reproducevangelism I spoke at the Department for Education’s Data Science Week. I wanted everyone – newer and more experienced users alike – to learn at least one new thing about reproduciblity with R and RStudio.
The slides are embedded below and you can also get them fullscreen online (press ‘F’ for fullscreen and ‘P’ for presenter notes) and find the source on GitHub.</description>
    </item>
    
    <item>
      <title>{holepunch} a {drake} and put it in a Binder</title>
      <link>https://www.rostrum.blog/2019/08/25/holepunch-drake/</link>
      <pubDate>Sun, 25 Aug 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/08/25/holepunch-drake/</guid>
      <description>tl;dr Binder lets people explore your GitHub-based R code in a live, browser-based instance of RStudio – for free. Set-up for R projects is quick with {holepunch}.
I’ve used {holepunch} on my {drake} demo repo. Click the ‘launch binder’ badge in the repo’s README.
 Icing on the {drake} I wrote about how Will Landau’s excellent {drake} package could be used to minimise errors and speed up the production of statistical reports by the UK government.</description>
    </item>
    
    <item>
      <title>Can {drake} RAP?</title>
      <link>https://www.rostrum.blog/2019/07/23/can-drake-rap/</link>
      <pubDate>Tue, 23 Jul 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/07/23/can-drake-rap/</guid>
      <description>tl;dr The {drake} package records file interdependecies in your analysis. When files are changed, {drake} only re-runs the parts that need to be re-run. This saves time and reduces error.
This could be useful for Reproducible Analytical Pipelines (RAP), an automated approach to producing UK government statistics that minimises error and speeds production.
 Make it to make it Analysis projects can become complicated as multiple inputs, script files and outputs build up.</description>
    </item>
    
    <item>
      <title>Teaching R with Pokémon Go data</title>
      <link>https://www.rostrum.blog/2018/11/04/r-train-pkmn/</link>
      <pubDate>Sun, 04 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2018/11/04/r-train-pkmn/</guid>
      <description>Psyduck hurt itself in its confusion (via Giphy)  You teach me and I’ll teach you I wrote in a recent post about some training materials I wrote for teaching R Markdown.
Now I’m sharing another thing I made: Beginner R and RStudio Training (featuring Pokémon!). It’s an introduction to R, RStudio, R Projects, directory structure and the tidyverse. It uses Pokémon Go1 data that I collected myself.2
You can:</description>
    </item>
    
    <item>
      <title>Iterative R Markdown reports for Dawson&#39;s Creek</title>
      <link>https://www.rostrum.blog/2018/06/26/mail-merge/</link>
      <pubDate>Tue, 26 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2018/06/26/mail-merge/</guid>
      <description>Dawson’s Creek’s Dawson leaks  tl;dr You have customer details. You want to send each person a personalised letter from a template. You want to mail merge, basically.1
This post shows how you can use R to iteratively produce separate Microsoft Word reports from a common template, each one with slightly different data. Here I use R Markdown and the {knitr} package to render a separate report about each episode of Dawson’s Creek (a classic use case!</description>
    </item>
    
  </channel>
</rss>