Publications by R | datawookie
Mobility & Unrest in South Africa
Did the recent unrest in South Africa have a detectable effect on mobility patterns? Google Mobility Data Google has used anonymised data personal location data to gather information on mobility during the COVID-19 pandemic. These data are freely available in CSV format and regularly updated. {mobility} Package I created a small R package, {mo...
2861 sym R (2195 sym/6 pcs) 8 img
TomTom Traffic
In the previous post I introduced the {tomtom} package and showed how it can be used for geographic routing. Now we’re going to look at the traffic statistics returned by the TomTom API. As before we’ll need to load the {tomtom} package and specify an API. Then we’re ready to roll. Bounding Box We’ll be retrieving traffic incidents withi...
1527 sym R (3025 sym/6 pcs) 2 img
TomTom Routing
While working with the Google Mobility Data I stumbled upon the TomTom Traffic Index. I then learned that TomTom has a public API which exposes a bunch of useful and interesting data. Seemed like another opportunity to create a smaller R package. Enter {tomtom}. {tomtom} Package The {tomtom} package can be found here. Install the package. remote...
2679 sym R (2014 sym/9 pcs) 12 img
Old ‘Hood, New ‘Hood
I recently moved from suburban South Africa to rural England. I’m figuring out my new environment. Making some maps seemed to be a good way to get familiar with the surroundings. In the process I wanted to figure out two things: how to get maps with a consistent aspect ratio at different latitudes; and how to overlay a partially transparent ma...
5816 sym R (2006 sym/5 pcs) 18 img
{emayili}: Rudimentary Email Address Validation
A recent issue on the {emayili} GitHub repository prompted me to think a bit more about email address validation. When I started looking into this I was somewhat surprised to learn that it’s such a complicated problem. Who would have thought that something as apparently simple as an email address could be linked with such complexity? There are ...
4796 sym R (2392 sym/13 pcs) 4 img
{emayili} Interpolating Message Content
A small new feature added to {emayili}: the ability to interpolate content into the email message body. Load Package Load the {emayili} package and create a message skeleton. library(emayili) options( # Always print message body. envelope_details = TRUE, # Print message from pipeline. envelope_invisible = FALSE ) # Create a message ske...
1094 sym R (1927 sym/4 pcs) 2 img
Pre-Commit Hook for Processing README.Rmd
When writing an R package I usually write a README.Rmd file that I render to README.md. I use {pkgdown} to then create documentation. I run the last step via CI, so I never need to think about it. The problem is that I regularly forget to process the README.Rmd file, which means that despite keeping that it to date, everything else lags behind. W...
1173 sym R (123 sym/1 pcs) 2 img
{clockify} Time Tracking from R
At Fathom Data we use Clockify to keep detailed records of the time that we spend working on our clients’ projects. Up until fairly recently we manually generated timesheets at the end of each month that were sent through to the clients along with their invoices. Our experience has been that providing detailed timesheets helps foster trust and ...
4147 sym R (6450 sym/20 pcs) 4 img
{emayili} Rendering Plain Markdown
We’ve been able to attach text and HTML content to messages with {emayili}. But something that I’ve really been wanting to do is render markdown directly into an email. In version 0.4.19 I’ve added the ability to directly render plain markdown into a message. library(emayili) The render() method will handle plain markdown either as a charac...
1383 sym R (1228 sym/6 pcs) 2 img