JuliaEpiHandbook

A Guide to Julia for Epidemiologists

Author
Affiliation

Pennsylvania State University

Published

May 20, 2023

About This Project

The purpose of this book is to create a similar document as the excellent EpiRHandbook for epidemiologist who are interested in becoming Julia language users. Most people in epidemiology and statistics use R, Stata, or SAS. There are still plenty of people who exclusively use Excel to great results. That’s OK, and I’m not trying to tell you that those options are bad and you should convert to Julia immediately. But there are some advantages that I think make it an attractive option for epidemiologists to consider.

Who Is This For & Pre-Requisite Knowledge?

Because this book aims to provide ground-up instruction on using Julia as an epidemiologist, it does not assume any prior coding experience. Many people get started with Excel analysis, and this book tries to provide a new path that will be easier and more reliable for those individuals moving forward. As a result, the earlier chapters will lay out fundamental concepts of Julia and best practices for setting up a project, including concepts on version control and Git. But if you’ve got experience with R (or another language), then I hope to try and draw parallels and examples that will help speed up your learning.

The purpose of this book is not to teach you how to write the most performant code, though we will cover some key concepts as we go along, nor show you ever way to do a particular task. Neither is it’s purpose to teach you to become a Julia developer. There are many other resources that are better suited for those purposes, and I’ve tried to include links where appropriate. Instead, the goal is to help you get started with Julia, working through problems that you might encounter in your day-to-day work, providing you with the tools to carry out your work as an epidemiologist, and sufficient Julia knowledge to know how to research and think your way through other obstacles you may encounter. As a result, this book will make choices that prioritize readability and reproducibility over performance, because they are more important when you are getting started. Unlike Python, which takes the approach that there should only be one obvious way to complete a task, Julia provides the user with more flexibility because it is so fast that there are often multiple solutions that are similarly performant, and which one to use comes down to a stylistic choice. Where I make a deliberate choice, I will try to explain why I made that choice, and refer you to alternative approaches that you can explore on your own as you become more proficient with computational epidemiology and Julia.

Not only will this book help you learn how to use Julia, but I hope that it will also help teach you how to think about problems that are relevant to you in a way that will help you solve them in Julia. Like everything in life, you will not be great at this immediately, and you may even be slower at problem solving with Julia that you are with your current tool. But, with practice, you will get better and faster, and you will soon be able to solve problems that you could not have solved before!

Built With

Contact

You can contact me via my email: “arnold dot crk at gmail dot com”.

Contributing

If you see any issues, please open an Issue or Discussion on the book’s GitHub page. Or, if you know Git, you can open a Pull Request to fix the issue directly, which is even better!

Tip

You can directly go to the code for each page by clicking the “Edit this page on GitHub” link at the bottom of each page’s TOC on the right. This can be useful if you would like to point out an issue or propose a change.

If you are interested in contributing text, please email me and we can make it happen!

Acknowledgements

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.