R Community Explorer – R User Groups

By September 9, 2019 Blog

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:

  1. We used the meetupr package to extract R user groups from Meetup.com
  2. Improved the existing find_groups() and get_events() functions in meetupr 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.
  3. Transformed the data retrieved from Meetup  via meetupr from data frames to JSON, GeoJSON and CSV
  4. Stored the data by committing the JSON/GeoJSON/CSV files to the GitHub repository of the project.
  5. Developed a static HTML dashboard interface based on an open-source Bootstrap template
  6. Rendered the stored data via the dashboard interface
  7. Automated the process of extracting R user groups, data transformation and storage.
  8. 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:

  1. R, RStudio and the following packages:
  • meetupr, curl, jsonlite and leafletR
  1. Javascript and the following libraries: jquery.js, d3.js, echarts.js, leaflet.js, leaflet-markercluster.js and lodash.js
  2. Gentelella Admin Dashboard Bootstrap HTML template
  3. Travis CI to automatically build the project, execute R scripts and bash commands
  4. 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.