JSM 2018 is almost here! Usually around this time, I comb through the entire program manually making an itinerary for myself. But this year I decided to try something new – a programmatic way of going through the program, and then building a Shiny app that helps me better navigate the online program.
The end result of the app is below. (I might tweak it a bit further after this post goes live, depending on feedback I receive.) You can interact with the app here.
I’m often dissatisfied with conference webpages, and almost always dissatisfied with conference apps, so I thought this was a good opportunity to build one myself. Also, I’m teaching Shiny at JSM and have been wanting to acquaint myself better with the glue package, so I figured spending some time web scraping, text wrangling, and building an app could be fun. (Note to self: Next time do this after you’re done preparing all your presentations!)
This is a three part blog post: (1) the data, (2) the app, and (3) the itinerary.
All relevant source code can be found here.
The data
The data were scraped from the JSM 2018 Online Program.
Before scraping the data, I checked that the scraping is allowed on this page using robotstxt::paths_allowed()
.
library(robotstxt)
paths_allowed("http://ww2.amstat.org/meetings/jsm/2018/onlineprogram/index.cfm")
##
ww2.amstat.org No encoding supplied: defaulting to UTF-8.
## [1] TRUE
Looks like we’re good to go!
Once you’re on the online program landing page, you need to click Search without setting any search parameters in order to get to a page with information on all JSM sessions. For convenience, I saved the resulting HTML file for this page in my repo. (You can access it here.)
The next step is using rvest and the SelectorGadget to scrape the data. This process allows us to take not-so-tidy data from the web and turn it into a tidy data frame that we can then work with in R.
Based on these data, I created two data frames: one for sessions and the other for talks. These two data frames will serve as the source data for the two tabs in the app. The code for data scraping the data and wrangling into these two data frames can be found here.
The app
The app is built with Shiny, using a navbarPage
to allow for two separate tabPanel
s.
The first panel is the session schedule. This tab allows users to subset sessions based on days and times, as well as session sponsors and types. This is similar to the functionality on the JSM page; however, it’s designed to easily subset for sessions I like having on my radar, and it allows me to subset by time of day.
The second tab is designed to navigate talks, as opposed to sessions. You can look for keywords in talk titles. Curious how many talks have “R” in their title? How about “tidy”? Take a guess first, then peek at the app to check your answer.
The source code for the app can be found here.
The itinerary
Using a combination of the app I build and good ol’ Ctrl-F on the online program, I came up with the following itinerary for JSM. The foci of the sessions I selected are education, data science, computing, visualization, and social responsibility. I obviously won’t make it to all the sessions I list here, but I plan to at least try to get my hands on the slides for the talks I don’t make.
I also plan on stopping by the JSM Data Art Show at some point!
If you have suggestions for other sessions (in these topics or other) that you think should be on this list, let me know in the comments!
Saturday, Jul 28
8:00 AM - 12:00 PM: Shiny Essentials - This morning I will be teaching a half-day workshop on building Shiny apps and dashboards. If you’re interested, you can sign up here.
8:00 AM - 4:00 PM: Preparing Graduate Students to Teach Statistics and Data Science - This is a workshop designed to prepare graduate students for a role as undergraduate faculty responsible for teaching statistics and data science. I will be teaching two modules in this workshop in the afternoon.
Sunday, Jul 29
- 2:00 PM - 3:50 PM
- 4:00 PM - 5:50 PM: Introductory Overview Lecture: Examining What and How We Teach at All Levels: Key Ideas to Ensure the Progress and Relevance of Statistics — Invited Special Presentation - I will be chairing this session and based on what I’ve seen from the fantastic speakers so far, I strongly recommend you not miss it!
Monday, Jul 30
- 7:00 AM - 8:30 AM: Section on Statistical Education Officers Meeting
- 8:30 AM - 10:20 AM:
- 10:30 AM - 12:20 PM
- 2:00 PM - 3:50 PM: It will be particularly difficult to choose between these three sessions.
- 4:00 PM - 5:50 PM: ASA President’s Invited Address - Helping to Save the Business of Journalism, One Data Insight at a Time
- 6:00 PM - 8:00 PM: Statistical Computing and Statistics Graphics Mixer
- 7:00 PM - 8:30 PM: Public Lecture: Born on Friday the Thirteenth: The Curious World of Probabilities
Tuesday, Jul 31
- 8:30 AM - 11:30 AM: ASA DataFest Steering Committee and Information Session - If you’re running an ASA DataFest or if you’re interested running one next year, come join us! We’ll be discussing leads for next year’s dataset, and organization tips.
- 8:30 AM - 10:20 AM:
- 10:30 AM - 12:20 PM:
- The Future of Spatial and Spatio-Temporal Statistics
- Graphics in Statistical Practice: Saying it with Pictures in the Classroom, Boardroom, or the Consulting Cube
- SPEED: Sports to Fire: Fascinating Applications of Statistics - A variety of interesting applications; there may be some good examples for teaching among them.
- Data Science
- Late-Breaking Session: Statistical Issues in Application of Machine Learning to High-Stakes Decisions
- 12:30 PM - 2:00 PM: 2019 SDSS Planning Meeting - I will be the short-course organizer for SDSS 2019. If you have ideas for a short course, either that you might want to teach or that you might want to take, let’s chat at JSM!
- 2:00 PM - 3:50 PM:
- Bringing Intro Stats into a Multivariate and Data-Rich World - I will be speaking at this session, hope to see you there!
- Lead with Statistics: Case Studies and Methods for Learning and Improving Healthcare Through EHRs
- 5:30 PM - 7:30 PM: Bayesian Mixer
Wednesday, Aug 1
- 8:30 AM - 11:30 AM:
- Getting Shots Inside the Box-Cox - I don’t usually go to sports statistics sessions, but (1) this one is about soccer and (2) that session title is pretty witty!
- Worldwide Statistics Without Borders Projects: Statistics, Data Visualization, and Decision Making
- Innovative and Effective Teaching for Large-Enrollment Statistics and Data Science Courses
- 10:30 AM - 12:20 PM:
- 2:00 PM - 3:50 PM:
- 4:00 PM - 5:50 PM: COPSS Awards and Fisher Lecture - The Future: Stratified Micro-Randomized Trials with Applications in Mobile Health
- 6:00 PM - 7:30 PM: Section on Statistical Education Business Meeting - Come celebrate the section turning 70, we’ll have cake!
Thursday, Aug 2
- 8:30 AM - 10:20 AM
- 10:30 AM - 12:20 PM
- Expanding the Tent: Undergraduate Majors in Data Science - I’ll be a discussant in this session, very much looking forward to hearing others’ ideas on curricular approaches for data science education.
- Data Science for Social Good
- The ‘Ergonomics’ of Statistics and Data Science
- Statistical Computing on Parallel Architectures
You may leave a comment below or discuss the post in the forum community.rstudio.com.