/RTutor

Creating interactive R Problem Sets. Automatic hints and solution checks. (Shiny or RStudio)

Primary LanguageR

RTutor: Interactive R Problem Sets

Author: Sebastian Kranz, Ulm University

RTutor is an R package that allows to develop interactive R exercises. Problem sets can be solved off-line or can be hosted in the web with shinyapps.io. Problem sets can be designed as a Markdown .rmd file (to be solved directly in RStudio) or use a browser-based interface powered by RStudio's Shiny. While the web interface looks nicer, I personally use problem sets in the Markdown format when teaching advanced economic classes.

Installation

RTutor and some required packages are not hosted on CRAN (while CRAN is great it takes a lot of time to maintain several packages there). You can install it from my r-universe repository by using the following code:

options(repos = c(skranz = 'https://skranz.r-universe.dev',
    CRAN = 'https://cloud.r-project.org'))
install.packages("RTutor")

Create your own problem sets

Take a look at the manuals for documentation of how to create own problem sets. Also look at the examples below.

Trying out some problem sets

You can try out the Rmarkdown version of RTutor via RStudio Cloud:

https://rstudio.cloud/project/39040

For the web-based interface, several students at Ulm University have created very nice problem sets that allow to interactively replicate the main insights of interesting economic articles and to learn a bit about R and econometrics. Before developing your own problem sets, you may want to try out some of these examples:

The Effect of Water Pollution on Cancer (by Brigitte Peter)

Political Incentives and Water Pollution in China (by Simon Maier)

Economic Impact of Covid-19 (by Alexandra Aehle)

What explains the employment drop in the great recession 2007-2009? (by Birgit Schroff)

Comparing the Environmental Damages of Driving Electric or Gasoline Cars (by Felix Stickel)

The causal effects of Sweden's CO2 Tax (by Theresa Graefe)

Public Procurement Auctions: Design, Outcomes and Adaption Costs (by Frederik Collin)

Poverty Reduction and Deforestation (by Katharina Kaufmann)

How soap operas reduced fertility in Brazil (by Clara Ulmer)

Excessive Traffic Jams? Improving Incentive Contracts for Road Construction Projects (by Claudius Schmid)

The impact of competition policy and industrial policy on economic development (by Julian Latzko)

Analyzing Mozart's letters: How emotions determine creativity (by Daniel Klinke)

Estimating Central Bank Objectives using Text Analysis (by Julian Lenhardt)

Assessing Free Trade Agreements (by Tobias Fischer)

CO2 Trading and Risk of Firm Relocation (by Benjamin Lux)

The Effects of Defaults on Donations (by Stefanie Buda)

Insurance and the Church (by Adidti Malani)

Public Infrastructure Spending and Voting Behaviour (by Philipp Klotz)

On the optimal taxation of top incomes (by Jonas Send)

The effect of the TseTse fly on African Development (by Vanessa Schöller)

Pollution Reduction by Wind Energy (by Anna Sophie Barann)

Wall Street and the Housing Bubble (by Marius Wentz)

How much less effective are publicly assigned lawyers? (by Artemij Cadov)

Air pollution and house prices (by Moritz Sporer)

Female Role Models for Potential Economics Students (by Stefanie Buda)

Predicting Effects of Carbon Pricing on US Electricity Production (by Daniel Dreyer)

A macroeconomic study of credit booms and busts (by Thomas Clausing)

The impact of emmission trading on green innovation (by Arthur Schäfer)

Social Spillovers in Movie Consumption (by Lara Santak)

Building Codes and Energy Efficiency (2 versions, by Simon Hertle and Lisa Eilts)

Gasoline Prices and Consumer Behavior (by Melina Klenk)

Technological Progress and Fuel Economy of Cars (by Marius Breitmayer)

Experiment zu sozialen Netzwerken und Vertragserfuellung (by Fabian Zeiher)

Long-Term Effects of Communism in Eastern Europe (by Benjamin Markert)

How can Scandinavians tax so much? (by David Hertle)

An interesting case study of a bank run (by Joachim Plath)

Courses that use RTutor problem sets

If you a have course that uses RTutor that you want to share, just send me an email and I add your course to the list!

  • Two courses from me: Empirical Economics with R and Market Analysis with Econometrics and Machine Learning. Both consists of online shiny apps with videos and quizzes and many RTutor problem sets.

  • Jade Benjamin-Chung from UC Berkeley School of Public Health has created with RTutor online tutorials for an introductory R course for epidemiologists. If you click on a tutorial the corresponding RTutor problem set can be directly solved on shinyapps.io. There is no need to log in.

  • RTutor is also used in a compulsory data science project course taught by Alex Rieber for business and economics students at Ulm University. The problem sets teach basic skills in R, including tidyverse data wrangling, as well as econometric and machine learning basic with economic applications. Alex published the problem sets and other course material here on Github. You find on the Github pages also links that allow you to test the problem sets on the rstudio cloud. The course is in German but Alex already started to make an English version of the problem sets, which will be added once finished.

Installing RTutor directly from Github

To install RTutor and required packages directly from Github and CRAN, you can use the small function in the following gist:

https://gist.github.com/skranz/fad6062e5462c9d0efe4

Copy the code in the link into your R console and then run:

install.rtutor(update.github=TRUE)

Depending on your devtools version, also the following code may work directly (yet source_gist is buggy in some devtools versions):

if (!require(devtools)) 
  install.packages("devtools")

devtools::source_gist("gist.github.com/skranz/fad6062e5462c9d0efe4", filename="install_rtutor.r")
install.rtutor(update.github=TRUE)
library(RTutor)

If you only want to update the RTutor package (and have the other packages already installed). You can just type:

devtools::install_github("skranz/RTutor", upgrade="ask")

(You may have to restart your R session / RStudio for the update to work.)

Suggestions & Feedback

If you have suggestions or find bugs, please don't hesitate to open an issue on the Github page.