R for Nonprofits
Purpose
This is the first in a series of posts in which I aim to explain how a nonprofit organization might benefit from the R programming language and its appendages. Specifically, I intend to provide guides and examples for how I have benefited from use of R in my own organization, and I am NOT writing this to advocate for widespread use of R in nonprofits. There are many tools and methods available to achieve similar ends, and the choice of which to implement largely depends on the current capabilities of the organization as well as the interest and resourcesfulness of staff.
Brief Primer on R
According to The R Foundation, “R is a language and environment for statistical computing and graphics…R is an integrated suite of software facilities for data manipulation, calculation and graphical display.”
R’s popularity has grown in recent years with the rise of data science fields, which has coincided with more accessibility to implementing these algorithms and methods. R is often compared with Python in terms of use for machine learning applications, though Python is much more popular. R is usually favored more by those coming from a background in statistics, which isn’t surprising since it was originally a language built for statisticians.
With this popularity has come increased support from the open source community, with many resources developed that make it easier to learn the language and make use of its myriad capabilities. Most notable among these is the development of the Tidyverse suite of packages, which uses more intuitive syntax for data manipulation and visualization than base R, thus lowering the entry barrier to learning the language.
Why R?
In my role as Manager of Data and Impact at a small nonprofit, I am responsible for all things data in my organization, from data collection activities and database administration to report writing and any other analyses. As I was settling into my role, I started creating some initial Power BI dashboards and reports, which I reviewed with our staff. Seeing more data presented in different ways spurred my colleagues to ask more questions, which required more follow-up analyses on my part.
Specifically, without realizing it, my team was asking for multivariate regressions. I hadn’t done regression analysis since my college stats courses, and I wasn’t sure how professionals performed these analyses in practice. Doing some quick research led me to several tools, which I quickly narrowed down to the open-sources / free tools suitable to the financial limitations of a small nonprofit. This led me to programming languages R and Python.
Now, if you go down this rabbit hole of choosing R or Python, you will find advocates and detractors on both sides. The advice that I ended up going with was that R was a language purpose-built for statistical analysis, whereas Python was a general purpose language with exceptional statistical analysis capabilies. So, if you’re primarily looking to run a variety of analyses, R would be a good choice for you.
And so it was, I got started teaching myself R.
Beyond Analysis
Though I initally started with very particular analysis in mind, the learning process acquainted me with R’s extensive capabilities – both those unique to this particular programming language, and the more universal software development best practices. Below is a non-exhaustive list of some of the more impactful of these capabilities and methodologies
- Creating publication-worthy data visualization
- Functional programming
- Working with tidy data
- Reading and writing large amounts of data in various formats
- Report writing with R Markdown
- Verson control with Git
- API connections to popular applications such as Google Drive and Salesforce
- Custom packages for report/visualization branding and prorprietary data
I intend to cover all of these topics in the following posts, in which I will explain how to get started with each concept, and I will provide use-cases specific to the nonprofit setting.
Conclusion
As I stated above, my intention is not to proselytize for the adoption of R by nonprofits. Rather, I aim to share my unique experience and provide a guide for others for whom it would make sense to leverage this powerful tool.
I welcome any feedback, questions, or suggestions.