The Spade

The Spade

Share this post

The Spade
The Spade
Tutorial: Navigating Through nflfastR Using SQL

Tutorial: Navigating Through nflfastR Using SQL

Direct all queries here

Ray Carpenter's avatar
Ray Carpenter
May 16, 2025
∙ Paid
1

Share this post

The Spade
The Spade
Tutorial: Navigating Through nflfastR Using SQL
Share

Hey everyone,

Exciting times, I just received my first batch of premium subscribers here on Substack! That means this will be my first paywalled post. I wanted to thank my new subscribers for their support, and reward them with a tutorial.

Moving forward, I think my premium content on Substack will be tutorial focused. I used multiple languages when processing data and creating visualizations and want to share my process here in case you wanted to give these a try at home. I’ve found Owen Phillips’ R tutorials extremely helpful over on The F5, and I really admire his model of free articles but paid tutorials.

As for the money the premium subscribers give me ($5/month), I am investing it all back into The Spade. I’m subscribed to multiple premium NFL datasets (since most of the good stuff is paywalled), and my premium subscribers just allow me to pay for more premium NFL datasets which allow me to give them more valuable NFL insights, and the cycle just repeats from there on out. I appreciate all of the support and please let me know what you’d like to see as well as a premium subscriber. I take requests!


Some Quick Notes on my Setup

I do all of my development work for The Spade on my M4 MacBook Air, before that it was on my M1 iMac. I’ve also created these visualizations on an old Windows Laptop I recently got rid of, and haven’t had any problems across the 3. I use GitHub for all my repos, but use it a little untraditionally. I’m not building any real platforms or solutions, so I don’t find branching necessary when creating these vizzes. I isolate components using Jupyter notebooks instead, then prune the notebook later to the cells I desire to keep. So whenever I commit something, it’s usually a commit and push straight onto the main branch from the main branch. This obviously isn’t best practice, but it gets the job done for what I’m trying to accomplish.

I use Python 3.12 but recently upgraded from Python 3.9, I haven’t noticed any issues with the upgrade (yet). I use R 4.4.2. To get R to compile correctly in Jupyter notebooks on my Windows machine, I downloaded R through Anaconda. I didn’t download Anaconda on my MacBook though, this extra step wasn’t needed. I use Jupyter notebooks (.ipynb files) on Visual Studio Code. Long story short, the things I build work in multiple places on multiple machines. And I should take the time to build a Docker container soon.

1. Get the Data

If you’re using R, install your packages and import them directly in the notebook like so:

Keep reading with a 7-day free trial

Subscribe to The Spade to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2025 Raymond Carpenter
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share