The main objective of this thesis is to contribute to a more systematic understanding of how mainstream news media in liberal democracies report about protests.

This article provides a detailed analysis of the roles and interactions between different types of media and how they were used by political and advocacy elites. It explores what happened in the different parts of the system, and thus the paths to attention that led to setting this issue in the political and media agendas. The analysis of the case, a partial policy reversal in the United Kingdom provoked by an immigration scandal known as the “Windrush scandal” reveals that the issue was pushed into the agenda by a campaign assemblage of investigative journalism, political and advocacy elites, and digitally enabled leaders. The legacy news media came late but were crucial..


rwhatsapp is a small yet robust package that provides some infrastructure to work with WhatsApp text data in R. WhatsApp seems to become increasingly important not just as a messaging service but also as a social network—thanks to its group chat capabilities. This package is intended to make the first step of analysing WhatsApp text data as easy as possible: reading your chat history into R. This should work, no matter which device or locale you used to retrieve the txt or zip file containing your conversations.

The philosophy of paperboy is that the package is a comprehensive collection of webscraping scripts for news media sites. Many data scientists and researchers write their own code when they have to retrieve news media content from websites. At the end of research projects, this code is often collecting digital dust on researchers hard drives instead of being made public for others to employ. paperboy offers writers of webscraping scripts a clear path to publish their code and earn co-authorship on the package. For users, the promise is simple: paperboy delivers news media data from many websites in a consistent format.

My PhD supervisor once told me that everyone doing newspaper analysis starts by writing code to read in files from the “LexisNexis” newspaper archive. However, while I do recommend this exercise, not everyone has the time. This package provides functions to read in TXT, RTF, DOC and PDF files downloaded from the old “LexisNexis” or DOCX from the new Nexis Uni, Lexis Advance and similar services. The package also comes with a few other features that should be useful while working with data from the popular newspaper archive.

wallpapr is a little toy R package to make desktop and phone backgrounds using ggplot2. The design is inspired (aka copied one-to-one) by the beautiful calender wallpapers of Emma. You can check out her wallpapers at: With this package you can create your own calender wallpapers using an input image.

Curriculum Vitae

Download my academic CV.

Recent Posts

Also on R-Bloggers

More Posts

I have tried to venture into Python several times over the years. The language itself seems simple enough to learn but as someone who has only ever used R (and a bit of Stata), there were two things that held me back: I never really found an IDE that I liked. I tried a few different ones including Spyder and Jupyter Notebook (not technically an IDE) and compared to RStudio and R Markdown they felt rather limited.


My thesis “Troublemakers in the Streets? A Framing Analysis of Newspaper Coverage of Protest in the UK 1992-2017” is available on the website of the University of Glasgow since last week. It scrutinises how mainstream news media in the United Kingdom have framed domestic protest over the last three decades. I will (try to) publish parts of this research for different audiences over the next year. But here I wanted to summarise a few key points.


If you have build your homepage using blogdown, it’s actually quite simple to integrate Javascript snippets in it. While this is mentioned in the book “blogdown: Creating Websites with R Markdown”, it still took me a little bit to undertstand how it works. As an example, let’s make different versions of a simple plot and let the user decide which one to display. First I make the plots and save them in a sub-directory:


R 4.0.0 was released on 2020-04-24. Among the many news two stand out for me: First, R now uses stringsAsFactors = FALSE by default, which is especially welcome when reading in data (e.g., via read.csv) and when constructing data.frames. The second news that caught my eye was that all packages need to be reinstalled under the new version. This can be rather cumbersome if you have collected a large number of packages on your machine while using R 3.


Like last year I wanted to make something special for my wonderful R-Lady. This year the main work was done by the very talented Will Chase, who makes wonderful aRt including the animation this post is based on. All I did to change the original animation was to cut it into a heart shape and carve our initials into the center. Enjoy: library(dplyr) library(poissoned) library(gganimate) # generate points pts <- poisson_disc(ncols = 150, nrows = 400, cell_size = 2, xinit = 150, yinit = 750, keep_idx = TRUE) %>% arrange(idx) # generate heart shape hrt_dat <- data.