A tutorial on tidy cross-validation with R
Analyzing NetHack data, part 1: What kills the players
Analyzing NetHack data, part 2: What players kill the most
Building a shiny app to explore historical newspapers: a step-by-step guide
Classification of historical newspapers content: a tutorial combining R, bash and Vowpal Wabbit, part 1
Classification of historical newspapers content: a tutorial combining R, bash and Vowpal Wabbit, part 2
Dealing with heteroskedasticity; regression with robust standard errors using R
Easy time-series prediction with R: a tutorial with air traffic data from Lux Airport
Exporting editable plots from R to Powerpoint: making ggplot2 purrr with officer
Forecasting my weight with R
From webscraping data to releasing it as an R package to share with the world: a full tutorial with data from NetHack
Getting data from pdfs using the pdftools package
Getting the data from the Luxembourguish elections out of Excel
Going from a human readable Excel file to a machine-readable csv with {tidyxl}
How Luxembourguish residents spend their time: a small {flexdashboard} demo using the Time use survey data
Imputing missing values in parallel using {furrr}
Looking into 19th century ads from a Luxembourguish newspaper with R
Making sense of the METS and ALTO XML standards
Manipulate dates easily with {lubridate}
Manipulating strings with the {stringr} package
Maps with pie charts on top of each administrative division: an example with Luxembourg's elections data
Missing data imputation and instrumental variables regression: the tidy approach
Objects types and some useful R functions for beginners
Pivoting data frames just got easier thanks to `pivot_wide()` and `pivot_long()`
R or Python? Why not both? Using Anaconda Python within R with {reticulate}
Searching for the optimal hyper-parameters of an ARIMA model in parallel: the tidy gridsearch approach
Some fun with {gganimate}
The best way to visit Luxembourguish castles is doing data science + combinatorial optimization
The year of the GNU+Linux desktop is upon us: using user ratings of Steam Play compatibility to play around with regex and the tidyverse
Using Data Science to read 10 years of Luxembourguish newspapers from the 19th century
Using a genetic algorithm for the hyperparameter optimization of a SARIMA model
Using the tidyverse for more than data manipulation: estimating pi with Monte Carlo methods
What hyper-parameters are, and what to do with them; an illustration with ridge regression
{pmice}, an experimental package for missing data imputation in parallel using {mice} and {furrr}
Building formulae
Functional peace of mind
Get basic summary statistics for all the variables in a data frame
Getting {sparklyr}, {h2o}, {rsparkling} to work together and some fun with bash
Importing 30GB of data into R with sparklyr
Introducing brotools
It's lists all the way down
It's lists all the way down, part 2: We need to go deeper
Keep trying that api call with purrr::possibly()
Lesser known dplyr 0.7* tricks
Lesser known dplyr tricks
Lesser known purrr tricks
Make ggplot2 purrr
Mapping a list of functions to a list of datasets with a list of columns as arguments
Predicting job search by training a random forest on an unbalanced dataset
Teaching the tidyverse to beginners
Why I find tidyeval useful
tidyr::spread() and dplyr::rename_at() in action
Easy peasy STATA-like marginal effects with R
Functional programming and unit testing for data munging with R available on Leanpub
How to use jailbreakr
My free book has a cover!
Work on lists of datasets instead of individual datasets by using functional programming
Method of Simulated Moments with R
New website!
Nonlinear Gmm with R - Example with a logistic regression
Simulated Maximum Likelihood with R
Bootstrapping standard errors for difference-in-differences estimation with R
Careful with tryCatch
Data frame columns as arguments to dplyr functions
Export R output to a file
I've started writing a 'book': Functional programming and unit testing for data munging with R
Introduction to programming econometrics with R
Merge a list of datasets together
Object Oriented Programming with R: An example with a Cournot duopoly
R, R with Atlas, R with OpenBLAS and Revolution R Open: which is fastest?
Read a lot of datasets at once with R
Unit testing with R
Update to Introduction to programming econometrics with R
Using R as a Computer Algebra System with Ryacas

Hi! My name is Bruno Rodrigues, and I’m a senior advisor at PwC Luxembourg. I mostly work on data related projects using R and Python.

I’m an economist by training, but am interested in any subject that deals with statistics in general!

I program mostly in R and love sharing my knowledge, that’s why I started this blog. I share my posts also on R-bloggers and Rweekly. In my posts, I discuss new packages I discovered or new ways of using packages.

If you were one of my students, and need some of the materials I taught, just drop me an email.

You can follow me on twitter for blog updates.

I’m writing a book as a hobby about functional programming, unit testing and package development with R. You can read it for free.

You can also download my package, called brotools,
which contains some functions I use daily. You might find them useful too! I also made a package
caled `{nethack}`

that contains data from NetHack games played online from 2001 to 2018. You
can get it here.

- Pivoting data frames just got easier thanks to `pivot_wide()` and `pivot_long()`
- Classification of historical newspapers content: a tutorial combining R, bash and Vowpal Wabbit, part 2
- Classification of historical newspapers content: a tutorial combining R, bash and Vowpal Wabbit, part 1
- Manipulating strings with the {stringr} package
- Building a shiny app to explore historical newspapers: a step-by-step guide
- Using Data Science to read 10 years of Luxembourguish newspapers from the 19th century
- Making sense of the METS and ALTO XML standards
- Looking into 19th century ads from a Luxembourguish newspaper with R

- R or Python? Why not both? Using Anaconda Python within R with {reticulate}
- Some fun with {gganimate}
- Objects types and some useful R functions for beginners
- Using the tidyverse for more than data manipulation: estimating pi with Monte Carlo methods
- Manipulate dates easily with {lubridate}
- What hyper-parameters are, and what to do with them; an illustration with ridge regression
- A tutorial on tidy cross-validation with R
- The best way to visit Luxembourguish castles is doing data science + combinatorial optimization
- Using a genetic algorithm for the hyperparameter optimization of a SARIMA model
- Searching for the optimal hyper-parameters of an ARIMA model in parallel: the tidy gridsearch approach
- Easy time-series prediction with R: a tutorial with air traffic data from Lux Airport
- Analyzing NetHack data, part 2: What players kill the most
- Analyzing NetHack data, part 1: What kills the players
- From webscraping data to releasing it as an R package to share with the world: a full tutorial with data from NetHack
- Maps with pie charts on top of each administrative division: an example with Luxembourg's elections data
- Getting the data from the Luxembourguish elections out of Excel
- Exporting editable plots from R to Powerpoint: making ggplot2 purrr with officer
- How Luxembourguish residents spend their time: a small {flexdashboard} demo using the Time use survey data
- Going from a human readable Excel file to a machine-readable csv with {tidyxl}
- The year of the GNU+Linux desktop is upon us: using user ratings of Steam Play compatibility to play around with regex and the tidyverse
- Dealing with heteroskedasticity; regression with robust standard errors using R
- Missing data imputation and instrumental variables regression: the tidy approach
- Forecasting my weight with R
- Getting data from pdfs using the pdftools package
- {pmice}, an experimental package for missing data imputation in parallel using {mice} and {furrr}
- Imputing missing values in parallel using {furrr}
- Get basic summary statistics for all the variables in a data frame
- Keep trying that api call with purrr::possibly()
- Getting {sparklyr}, {h2o}, {rsparkling} to work together and some fun with bash
- Importing 30GB of data into R with sparklyr
- Predicting job search by training a random forest on an unbalanced dataset
- Mapping a list of functions to a list of datasets with a list of columns as arguments
- It's lists all the way down, part 2: We need to go deeper
- It's lists all the way down

- Building formulae
- Teaching the tidyverse to beginners
- Functional peace of mind
- Easy peasy STATA-like marginal effects with R
- Why I find tidyeval useful
- tidyr::spread() and dplyr::rename_at() in action
- Lesser known dplyr 0.7* tricks
- Make ggplot2 purrr
- Introducing brotools
- Lesser known purrr tricks
- Lesser known dplyr tricks
- How to use jailbreakr

- My free book has a cover!
- Functional programming and unit testing for data munging with R available on Leanpub
- Work on lists of datasets instead of individual datasets by using functional programming
- I've started writing a 'book': Functional programming and unit testing for data munging with R
- Merge a list of datasets together
- Read a lot of datasets at once with R
- Data frame columns as arguments to dplyr functions
- Unit testing with R
- Careful with tryCatch

- Bootstrapping standard errors for difference-in-differences estimation with R
- Update to Introduction to programming econometrics with R
- Export R output to a file
- Introduction to programming econometrics with R

- R, R with Atlas, R with OpenBLAS and Revolution R Open: which is fastest?
- Object Oriented Programming with R: An example with a Cournot duopoly

- Using R as a Computer Algebra System with Ryacas
- Simulated Maximum Likelihood with R
- Method of Simulated Moments with R
- Nonlinear Gmm with R - Example with a logistic regression