library(dplyr)
library(ggplot2)
library(httr)
library(jsonlite)
library(scales)
library(tidyverse)

Thanks to everyone who made it out for our inaugural meetup!

Metrics

# fetch and anonymize data
get_meetup_info <- function (url) {
  resp <- GET(url)
  print(paste(resp$url))
  json <- content(resp, as = "text")
  meetup_resp <- fromJSON(json, flatten=TRUE) # doesn't work for some reason
  return(meetup_resp)
}

fix_meetup_json <- function(meetup_resp) {
  
  meetup_datas <- meetup_resp  %>%
    unlist() %>% 
    as.data.frame.list()
  
  meetup_datas <- bind_cols(meetup_datas, flattened)
  
  return(meetup_datas)
}

event <- params$event_url %>% get_meetup_info %>% fix_meetup_json
rsvped <- params$rsvped_url %>% get_meetup_info %>% fix_meetup_json
attended <- params$attended_url %>% get_meetup_info %>% fix_meetup_json

attendance <- bind_rows(attended, rsvped %>% anti_join(attended, by = c("member.id", "member.name")))

attendance_anon <- attendance
attendance_anon$member.name = replicate(nrow(attendance_anon), 
                                        paste(sample(LETTERS, 10, replace=TRUE), collapse=""))

rm(rsvped, attended, attendance)
write_csv(attendance_anon, "28_attendance_anon.csv")
write_csv(event, "28_event.csv")

Attendance

9 out of the 10 folks who RSVP’ed attended. We had one extra person attend who did not RSVP!

attendance_anon <- read_csv("28_attendance_anon.csv")
ggplot(attendance_anon, aes(x=status, fill=rsvp.response)) +
  geom_bar(position="dodge") +
  scale_y_continuous(breaks=pretty_breaks())

Things We Covered

R Experience and Current Use

Everyone went around and shared their current level of experience with R and how they currently use it. These responses were distilled down to the following common themes.

# works_for
# com = industry/for-profit
# edu = university affiliation (student or teacher)
# org = non-profit
# gov = government

survey <- read_csv('
my,TRUE,expert,TRUE,com
jen,TRUE,expert,TRUE,edu
me,TRUE,expert,TRUE,edu
je,FALSE,novice,TRUE,edu
deb,NA,novice,TRUE,NA
ad,TRUE,competent practitioner,TRUE,gov
so,TRUE,competent practitioner,NA,com
de,FALSE,competent practitioner,TRUE,org
au,TRUE,competent practitioner,NA,com
ch,TRUE,expert,TRUE,com
', col_names=c("name","uses_for_work", "experience", "used_in_grad_school", "works_for"))

other_tools <- read_csv('
my,python
jen,sas
je,stata
so,sql
de,spss
au,python
', col_names=c("name","other_tools"))

ggplot(survey, aes(x=uses_for_work, fill=works_for)) +
  geom_bar(position="dodge")

ggplot(survey, aes(x=experience, fill=used_in_grad_school)) +
  geom_bar(position="dodge")

ggplot(other_tools, aes(x=other_tools, fill=other_tools)) +
  geom_bar(position="dodge", show.legend=FALSE) +
  scale_y_continuous(breaks=c(1:5))

R-Ladies PDX Group Goals

The following items were suggested when folks were asked what they wanted to get out of R-Ladies PDX:

  • Social/Community - Meet other women in science/tech/data science
  • Mentoring
  • Learn R Programming
  • Improve Coding Skills and Keep R skills sharp

R-Ladies PDX Meetup Ideas

Study Group

Meetup Topics

  • R markdown and publishing analysis results
  • Machine Learning Workshop

Got ideas? Add them here: https://docs.google.com/spreadsheets/d/1RzimpU5sBIu2N3N6on-Yj9OF1p1ATKUy23_OoxzqPnc/edit?usp=sharing

Group Projects

  • Find an interesting dataset and work together to explore it
  • Make our own “Anti-kaggle” challenge, explicitly based on cooperation
  • Pick a methodology and apply it to a public dataset to see how it works

Expertise

Some members indicated they had expertise in additional areas and would be willing to mentor others.

  • Myffy - Data Science Career Counseling and Development
  • Augustina - Open Source community involvement

Follow Up Items

Datacamp R-Ladies PDX Group

Chester indicated we could create an R-Ladies PDX group through Datacamp. Would people be interested in this?

Slack channel

Slack is a chat client that can run in the browser or through an app on your phone or computer. We use the PDX Data Slack. To set up an account, use the Google from on this page to send yourself an invite. http://pdxdata.org/slack/

R-Ladies PDX can be found in the channel #rladiespdx.

Survey

Deeksha put together a survey to get ideas about meeting times and locations that work best for everyone.

https://goo.gl/forms/FriUWABYeIYAkL343

Software/Data Carpentry Instructor Training

Augustina is currently in the process of getting certified as a Carpentries Instructor. If anyone else is interested in learning more about this so we can put on some workshops, here’s the info: https://docs.google.com/forms/d/e/1FAIpQLSe5rbZDqNdLIuIEw9wNrXWsGexKaSS7vwkc0HaxdBGh5M7ZPQ/viewform

R-Ladies Global

R-Ladies Global has a number of committees and projects. If you are interested in getting involved, get in touch with Augustina!

R-Ladies PDX Webpage

Alison Hill was kind enough to make a webpage for us through her blogdown tutorial at R meetup (https://www.meetup.com/portland-r-user-group/events/242600475/). Augustina is working on getting the source into the PDX R-Ladies Github org so any of us can update it.

R-Ladies PDX: http://rladies-pdx.rbind.io/

One idea mentioned during our Meetup was creating a “Resources” section with links and info on where to learn R. Once we have a workflow set up through the R-Ladies PDX Github organization I will ask who would be interested in doing or assisting with this! We could even do it as a workshop and have everyone add a resource to the page!

Possible Meeting Spaces

We are looking for regular meeting spaces! Several involved folks have ties to OHSU and booking space at the OHSU Waterfront would be very easy and centrally located. We also have ties to Reed and while the location isn’t quite as convenient for weekdays, this could be a good resource for weekend workshops or study groups. If you have other ideas, please add them to the spreadsheet linked below!

Suggested Meeting Locations:

  • OHSU Waterfront
  • Reed

Add more here: https://docs.google.com/spreadsheets/d/1AYA5t2PNOsrzTHDVeWzdyNQCN9W2IPx27QqHW92s7Ho/edit?usp=sharing

Resources and R Packages Mentioned

During the Meetup people shared different tools and R packages they’d worked with and also ones we explored while solving the challenge question. These were the packages that were mentioned and links to where you can find out more about them.

Next Meetup

Our next meetup on Oct 16 will feature Julia Silge presenting a short tutorial from her book “Tidy Text”. Would anyone be interested in a casual meetup on another day beforehand to prepare for the tutorial?

https://www.meetup.com/R-Ladies-PDX/events/243376514/

We are also planning our November meetup! We will share a Doodle poll with the group once we have survey responses in and depending on venue availability. Due to the Thanksgiving holiday, it will most likely be either during the week of Nov 13 or the week of Nov 27.

Challenge Question

At the end of the Meetup, Myffy proposed a question she’d encountered in a job interview and we all experimented with different ways to answer it.

Here is the question:

How would you build a data structure containing all possible permutations of ATCG?

The solution we came up with:

atcg <- c("A", "T", "C", "G")
atcg_permutations <- expand.grid(atcg, atcg, atcg, atcg)

atcg_permutations
##     Var1 Var2 Var3 Var4
## 1      A    A    A    A
## 2      T    A    A    A
## 3      C    A    A    A
## 4      G    A    A    A
## 5      A    T    A    A
## 6      T    T    A    A
## 7      C    T    A    A
## 8      G    T    A    A
## 9      A    C    A    A
## 10     T    C    A    A
## 11     C    C    A    A
## 12     G    C    A    A
## 13     A    G    A    A
## 14     T    G    A    A
## 15     C    G    A    A
## 16     G    G    A    A
## 17     A    A    T    A
## 18     T    A    T    A
## 19     C    A    T    A
## 20     G    A    T    A
## 21     A    T    T    A
## 22     T    T    T    A
## 23     C    T    T    A
## 24     G    T    T    A
## 25     A    C    T    A
## 26     T    C    T    A
## 27     C    C    T    A
## 28     G    C    T    A
## 29     A    G    T    A
## 30     T    G    T    A
## 31     C    G    T    A
## 32     G    G    T    A
## 33     A    A    C    A
## 34     T    A    C    A
## 35     C    A    C    A
## 36     G    A    C    A
## 37     A    T    C    A
## 38     T    T    C    A
## 39     C    T    C    A
## 40     G    T    C    A
## 41     A    C    C    A
## 42     T    C    C    A
## 43     C    C    C    A
## 44     G    C    C    A
## 45     A    G    C    A
## 46     T    G    C    A
## 47     C    G    C    A
## 48     G    G    C    A
## 49     A    A    G    A
## 50     T    A    G    A
## 51     C    A    G    A
## 52     G    A    G    A
## 53     A    T    G    A
## 54     T    T    G    A
## 55     C    T    G    A
## 56     G    T    G    A
## 57     A    C    G    A
## 58     T    C    G    A
## 59     C    C    G    A
## 60     G    C    G    A
## 61     A    G    G    A
## 62     T    G    G    A
## 63     C    G    G    A
## 64     G    G    G    A
## 65     A    A    A    T
## 66     T    A    A    T
## 67     C    A    A    T
## 68     G    A    A    T
## 69     A    T    A    T
## 70     T    T    A    T
## 71     C    T    A    T
## 72     G    T    A    T
## 73     A    C    A    T
## 74     T    C    A    T
## 75     C    C    A    T
## 76     G    C    A    T
## 77     A    G    A    T
## 78     T    G    A    T
## 79     C    G    A    T
## 80     G    G    A    T
## 81     A    A    T    T
## 82     T    A    T    T
## 83     C    A    T    T
## 84     G    A    T    T
## 85     A    T    T    T
## 86     T    T    T    T
## 87     C    T    T    T
## 88     G    T    T    T
## 89     A    C    T    T
## 90     T    C    T    T
## 91     C    C    T    T
## 92     G    C    T    T
## 93     A    G    T    T
## 94     T    G    T    T
## 95     C    G    T    T
## 96     G    G    T    T
## 97     A    A    C    T
## 98     T    A    C    T
## 99     C    A    C    T
## 100    G    A    C    T
## 101    A    T    C    T
## 102    T    T    C    T
## 103    C    T    C    T
## 104    G    T    C    T
## 105    A    C    C    T
## 106    T    C    C    T
## 107    C    C    C    T
## 108    G    C    C    T
## 109    A    G    C    T
## 110    T    G    C    T
## 111    C    G    C    T
## 112    G    G    C    T
## 113    A    A    G    T
## 114    T    A    G    T
## 115    C    A    G    T
## 116    G    A    G    T
## 117    A    T    G    T
## 118    T    T    G    T
## 119    C    T    G    T
## 120    G    T    G    T
## 121    A    C    G    T
## 122    T    C    G    T
## 123    C    C    G    T
## 124    G    C    G    T
## 125    A    G    G    T
## 126    T    G    G    T
## 127    C    G    G    T
## 128    G    G    G    T
## 129    A    A    A    C
## 130    T    A    A    C
## 131    C    A    A    C
## 132    G    A    A    C
## 133    A    T    A    C
## 134    T    T    A    C
## 135    C    T    A    C
## 136    G    T    A    C
## 137    A    C    A    C
## 138    T    C    A    C
## 139    C    C    A    C
## 140    G    C    A    C
## 141    A    G    A    C
## 142    T    G    A    C
## 143    C    G    A    C
## 144    G    G    A    C
## 145    A    A    T    C
## 146    T    A    T    C
## 147    C    A    T    C
## 148    G    A    T    C
## 149    A    T    T    C
## 150    T    T    T    C
## 151    C    T    T    C
## 152    G    T    T    C
## 153    A    C    T    C
## 154    T    C    T    C
## 155    C    C    T    C
## 156    G    C    T    C
## 157    A    G    T    C
## 158    T    G    T    C
## 159    C    G    T    C
## 160    G    G    T    C
## 161    A    A    C    C
## 162    T    A    C    C
## 163    C    A    C    C
## 164    G    A    C    C
## 165    A    T    C    C
## 166    T    T    C    C
## 167    C    T    C    C
## 168    G    T    C    C
## 169    A    C    C    C
## 170    T    C    C    C
## 171    C    C    C    C
## 172    G    C    C    C
## 173    A    G    C    C
## 174    T    G    C    C
## 175    C    G    C    C
## 176    G    G    C    C
## 177    A    A    G    C
## 178    T    A    G    C
## 179    C    A    G    C
## 180    G    A    G    C
## 181    A    T    G    C
## 182    T    T    G    C
## 183    C    T    G    C
## 184    G    T    G    C
## 185    A    C    G    C
## 186    T    C    G    C
## 187    C    C    G    C
## 188    G    C    G    C
## 189    A    G    G    C
## 190    T    G    G    C
## 191    C    G    G    C
## 192    G    G    G    C
## 193    A    A    A    G
## 194    T    A    A    G
## 195    C    A    A    G
## 196    G    A    A    G
## 197    A    T    A    G
## 198    T    T    A    G
## 199    C    T    A    G
## 200    G    T    A    G
## 201    A    C    A    G
## 202    T    C    A    G
## 203    C    C    A    G
## 204    G    C    A    G
## 205    A    G    A    G
## 206    T    G    A    G
## 207    C    G    A    G
## 208    G    G    A    G
## 209    A    A    T    G
## 210    T    A    T    G
## 211    C    A    T    G
## 212    G    A    T    G
## 213    A    T    T    G
## 214    T    T    T    G
## 215    C    T    T    G
## 216    G    T    T    G
## 217    A    C    T    G
## 218    T    C    T    G
## 219    C    C    T    G
## 220    G    C    T    G
## 221    A    G    T    G
## 222    T    G    T    G
## 223    C    G    T    G
## 224    G    G    T    G
## 225    A    A    C    G
## 226    T    A    C    G
## 227    C    A    C    G
## 228    G    A    C    G
## 229    A    T    C    G
## 230    T    T    C    G
## 231    C    T    C    G
## 232    G    T    C    G
## 233    A    C    C    G
## 234    T    C    C    G
## 235    C    C    C    G
## 236    G    C    C    G
## 237    A    G    C    G
## 238    T    G    C    G
## 239    C    G    C    G
## 240    G    G    C    G
## 241    A    A    G    G
## 242    T    A    G    G
## 243    C    A    G    G
## 244    G    A    G    G
## 245    A    T    G    G
## 246    T    T    G    G
## 247    C    T    G    G
## 248    G    T    G    G
## 249    A    C    G    G
## 250    T    C    G    G
## 251    C    C    G    G
## 252    G    C    G    G
## 253    A    G    G    G
## 254    T    G    G    G
## 255    C    G    G    G
## 256    G    G    G    G

This was a really fun activity and I’m thinking it might be fun to come up with fun problems like this at the end of each Meetup. I am starting yet another spreadsheet to collect questions (you can post a link to an R notebook or Gist with R code if need be) which we can randomly choose from.

https://docs.google.com/spreadsheets/d/19HU-icl6P0rAObs8G_BX5BDQ5_5cPjzj8Fek6V3ZA4E/edit?usp=sharing

Notebook Source

https://github.com/rladies-pdx/meeting_recaps/blob/master/2017/09/28.Rmd