π£οΈ Applied Epi is hiring!
Seeking R users in public health to support epidemiologists globally in English and French, Spanish, or Portuguese, as:
π΅ Instructors: Lead online R courses
π‘ Technicians: 1-on-1 online R mentorship
Apply by April 5th: π appliedepi.org/about/join.h...
#PublicHealth #Epi
Posts by
π Join the Board of Applied Epi!
Weβre seeking new Board Members passionate about global health & Epidemiology.
Help guide a nonprofit that trains 1000s worldwide in data-driven public health response.
β° ~2 hrs/month | Apply by 31 Dec 2025
π tinyurl.com/4yp5fu93
π Join the Board of Applied Epi!
Weβre seeking new Board Members passionate about global health & Epidemiology.
Help guide a nonprofit that trains 1000s worldwide in data-driven public health response.
β° ~2 hrs/month | Apply by 31 Dec 2025
π tinyurl.com/4yp5fu93
We're hiring!
Applied Epi is looking for a capable epidemiologist for a full-time 1-year remote contractor position.
Take a look at our website for more details on the role and how to apply: appliedepi.org/about/join.h...
Application deadline: July 31, 2025.
π¨ Rare opportunity! Our advanced R courses start end of July:
π Time series & outbreak detection in R
π Intro to Stats in R
πΊοΈ Intro to GIS in R
π₯οΈ Shiny in R
π Advanced R Markdown
Plus: Lots of Intro to R courses running all summer! π
Taught live by experienced epidemiologists. π
π appliedepi.org
βIβve taken several R trainings - this is the BEST!β
π’ New courses posted! Intro to R for public health
ποΈ 40 hours part-time, synchronous, with unlimited 1-on-1 coaching and options for ALL time zones.
βοΈ Register: appliedepi.org/training/pub...
π’ Last week to apply for the Applied Epi scholarships!
Transition your team to R with free or discounted courses and services.
Why apply?
βοΈ Full or partial scholarships
βοΈ Focused on strengthening public health capacity
ποΈ Apply by Feb 10, 2025! π appliedepi.org/training/scholarships-ae
π’ Ready to move your team to R? Applied Epiβs scholarships are OPEN!
β
Funding available for teams in LMICs
β
Even teams of 1 can apply with leadership support
β
Deadline: Feb 10, 2025
Why team applications? Collaboration ensures a smooth transition to R! Apply today: π appliedepi.org
π¨ Applications are NOW OPEN for Applied Epiβs 2025 scholarships! π¨
π‘ For teams in low- & middle-income countries working in epidemiology, this is your chance to access funding for courses and support services that help transition to R.
ποΈ Deadline: Feb 10, 2025
π Apply here: appliedepi.org
π R scholarship applications open on January 20!
If your team (government or nonprofit) works in applied epidemiology in a low- or middle-income country, you could get access to our Intro to R course and Support Desk! Details: appliedepi.org/training/sch...
#Rstats #epitwitter
The main takeaways are:
1) Ggplot customization possibilities are pretty endless.
2) Merry Christmas and happy holidays to you all!
πππ
That code shows other cool things too, like how we added in a new font ("Grand Hotel") for the ggplot title.
We used the {showtext} package for this: font_add_google() loads the font from Google Fonts, and showtext_auto() ensures R applies the font to the plot.
Repeatedly rerunning the code is quite fun
And how did we get Santa's coordinates?
Since he didn't share his location, we created a function (get_random_night_coords()) to randomly generate coordinates of a location with a current local time between 11pm and 3am, assuming those are his working hours!
Close enough!
Both of these figures are created with ggplot2, and use a saved PNG file of Santa.
geom_image() from {ggimage} places the image at specified coordinates, reading from the file path.
Here's the ggplot code for the second figure:
And if you want his current location:
π Merry Christmas Eve, everyone! π
To wrap up this advent calendar, hereβs our final tip:
Did you know you can use your own images in ggplot?
Check out this festive example with a cartoon of Santa βon his (surprisingly inefficient?) route tonight! π
β¨
#DataViz #RStats
coalesce() is from the {dplyr} package. It returns the first non-missing value from a set of columns, based on the order you specify.
Itβs not just for dates, but for any use-case where you need to pick one value from across columns!
Today's post is for anyone with bdays this time of the year. We see you!
This includes our Exec Director, an expert in "combo Xmas/bday" presents! Happy birthday Neale! π
On that note, ever work with multiple date columns but need to pick one? Use coalesce() to easily prioritize a value!
#Rstats
Can you recommend any other holiday or Christmas-related R packages? We'd love to know!
Here's the code if you like the "minimalist" aesthetic.
That said, it does show the versality of ggplot!
P.s. Before finding the {christmas} package I was ready to make this the main event for this post:
πDay 22: An R Christmas Tree π
There's still time to write your Christmas cards!
And what better captures the yuletide spirit than...R...
Seriously though, check out the {christmas} package by Jose Barrera-Gomez.. Stunning!
And finally, if you want the function code pasted above, you can get it from the Applied Epi Community: community.appliedepi.org/t/custom-ggp...
Enjoy!
#RStats #Dataviz
You can make the function more complex, but don't overdo it - too many arguments could become hard to understand and edit!
It's all about balance and the best solution for your problemπ€
Learn more here:
epirhandbook.com/en/new_pages...
ggplot2.tidyverse.org/reference/ti...
Want to further customize colours? π¨
The example above uses the same colour palette for each plot, with scale_fill_brewer().
For custom colours, you can also define a palette inside scale_fill_manual() - or as a separate object that you refer to (as discussed yesterday).
Why the squiggly brackets {{x}}? π€ They're for tidy evaluation!
{{ }} allows ggplot() to recognize the inputs for "xvalue" and "fillvalue" as column names from your data.
Without them, your function wonβt know how to evaluate these column names properly!
The code defines a function for an epicurve with geom_histogram(), taking three inputs:
1οΈβ£dataset object name ("data"),
2οΈβ£column name for the x axis ("xvalue"),
3οΈβ£column name for the fill colour ("fillvalue").
So you can easily make epicurves with different breakdowns or date types!
See how short and readable the code for producing three epicurves becomes π€©.
The function approach allows you to control data-related formatting (e.g. in the scale_* functions) AND non-data formatting (in theme()).
πDay 21: Ggplot efficiency part 3π
Need many plots with the same style/formatting but slightly different inputs?
π‘Create a custom ggplot function!
Define your plot upfront in the function, with all the long formatting code. Then run the function for each new plot with different inputs.