By Ben Ubah, Claudia Vitolo and Rick Pack
We recently announced an R-Ladies focused open-source dynamic dashboard built using R and Javascript. That work has now been extended to encompass all R user groups organized through Meetup.com. You can find this new dashboard at this link and its code, here.
The R user group support program and the R-Ladies project, are featured in two out of three top-level R Consortium projects.
How We Identified R User Groups on Meetup
Identifying all R user groups on Meetup.com required more effort than R-Ladies groups. While R-ladies groups are centrally created and their names follow a standard convention, the names of other R user groups are more difficult to predict.
We extended Curtis Kephart’s technique for using string matching to retrieve upcoming R events to:
- Match among all data science groups on Meetup
(7700 +) those with strings like “r user”,
“r-user”,“r-lab”,“phillyr”,“rug”,“bioconductor”,“r-data”,“rug” in their Meetup
URL names. We then performed a second round of string matching to search for
strings like “programming-in-r”, “r-programming-”, “-using-r”, “r-language”,
and “r-project-for-statistical” in the groups’
topics
field. - Retrieve all user groups that mention “r-project-for-statistical-computing” in their topics separately.
- Retrieve all R-Ladies groups separately, which was necessary to avoid missing some groups.
Procedure
For this dashboard, the following procedure was followed:
- We
used the
meetupr
package to extract R user groups from Meetup.com - Improved
the existing
find_groups()
andget_events()
functions inmeetupr
to meet our requirements and switched from the defunct Meetup API keys to OAuth 2.0 authentication system. This switch was quite complicated and will be discussed further in another article. - Transformed the data retrieved from Meetup via meetupr from data frames to JSON, GeoJSON and CSV
- Stored the data by committing the JSON/GeoJSON/CSV files to the GitHub repository of the project.
- Developed a static HTML dashboard interface based on an open-source Bootstrap template
- Rendered the stored data via the dashboard interface
- Automated the process of extracting R user groups, data transformation and storage.
- Deployed the dashboard via GitHub Pages
The Tools We Used
Combining R (for data-analysis) and JavaScript (for data-presentation) is at the heart of this project as this combination offers great flexibility with automation and deployment.
We used a mix of these tools to develop the dashboard:
- R, RStudio and the following packages:
- meetupr, curl, jsonlite and leafletR
- Javascript and the following libraries: jquery.js, d3.js, echarts.js, leaflet.js, leaflet-markercluster.js and lodash.js
- Gentelella Admin Dashboard Bootstrap HTML template
- Travis CI to automatically build the project, execute R scripts and bash commands
- Bash commands to call R scripts and commit modified files to GitHub
Acknowledgments
We appreciate Curtis Kephart (RStudio) for contributing code that helped us with ideas on identifying R user groups on Meetup.
We also
thank the authors of the meetupr package for their excellent work.
Special thanks to Jenny Bryan, Erin LeDell, and Greg
Sutcliffe for their help
over the last month with implementing the requirements for the new Meetup OAuth
2.0 authentication system.