Michelle Brandão | R in Sports Analytics - Intro to GitHub Actions | RStudio
videoimage: thumbnail.jpg
Transcript#
This transcript was generated automatically and may contain errors.
Alright. Well, thank you all so much for joining. Welcome to the RStudio Enterprise Community Meetup. I'm Rachel Dempsey. I'll be one of your hosts for today's R in Sports Analytics Meetup. And I'm joined by my co-host today, Mitch Tanney, if you want to say hello to everyone as well.
Yeah. Hi, everyone. If you're joining here for the second time, thank you. I'm playing the role of assistant emcee today. So no presentation for me, but looking forward to the presentation later today from Michelle.
Awesome. So if you've just joined now, feel free to introduce yourselves through the chat window and maybe put in where you're calling from and say hello. But just to go through a brief agenda for today, we'll go through some introductions, presentation by Michelle, and then just some open Q&A and networking. And I just wanted to note that this recording will be shared and will be posted up to YouTube. So of course, feel free to jump in and ask questions live too. But we'll also have a Slido link if you want to ask anything anonymously or if you don't want to be as part of the recording.
But for anyone who's just joining this group for the first time, this is a friendly and open meetup environment, really for teams to just share the work that you're doing within your organizations or teach lessons, learn, network with each other, but really just allow us all to learn from each other. So thank you all so much for making this a welcoming community. If you do ever have suggestions or general feedback, please let me know. I'll share an anonymous Google form in the chat later as well. But you can always reach out to me on LinkedIn or Meetup or just email me directly too.
So as I mentioned, I'll share that Slido link in just a second here for any questions that you have during the talk. But with that, I would love to introduce our speaker, Michelle Brandau. Michelle is a data analyst at FanDuel and will be presenting on an introduction to GitHub Actions. And so with that, I will stop my share, Michelle, and turn it over to you.
Introduction to GitHub Actions
Yeah, thank you so much for having me. So let me share my screen. So today I'm going to talk about GitHub Actions. It's something that I started working probably a month ago because a project that I was working inside. And then so the slogan, this is the slogan for GitHub Actions, automate your workflow from idea to a production. And that's pretty much what GitHub does, automates your project.
And I've been working with a G-League coach and I'm working on creating a Shiny app for that coach. So it became used to help with the scouring. And when I was working on the project, I did to find a way to able to scrape the data from the G-League website in an automatic way.
So I don't have to go every day and kind of do the scraping because, you know, G-League plays almost every day. And then coaches, once the game is over, they quickly go into the next one. So I want to make sure the data is updated as soon as possible. So I found the GitHub Actions was a good way to do it. So I'm kind of just give you a brief introduction of what GitHub Actions is and how to start it.
So it's a tool from GitHub, of course, that can be used in a lot of different things. You can use it as a test. For example, if you have a package, if you build a package and you did some small changes and you want to test it out, if you didn't break anything, you can use GitHub Actions to make sure the package looks good. You can deploy your projects with GitHub Actions. So it depends on what is your goal. You can do a lot of different things. Most of the people use GitHub Actions for continuous integration. That's what it's most used for. You can use in a lot of different things. You can use AR, Python, all different language. But today, of course, I'm going to talk about AR.
Setting up the workflow folder
So before anything, that's where you start. So you have to create a GitHub folder workflow. So you've got to make sure that it's exactly this way. So you've got to put .GitHub slash workflows. And then you have to create the GitHub Action, you've got to create an email file. And this here, that's what it will look like. I'll explain a little bit more as we're going. But definitely, you've got to make sure that it is exactly, you spell it exactly like this. Otherwise, it won't work.
So the GitHub, for the most part, is five steps. And depending on how complex it is, you can have more jobs. So we'll have a little more steps. But the first one is the events. And what is the event? The event is what triggers your workflow. And these two that I have here are the most common ones, I would say. But you can customize as much as you want. GitHub does a great job with the documentation and gives you a lot of examples. So the first trigger that you do is by push or the pull request. So once you push, it triggers the workflow and will run your workflow or your GitHub Actions.
Another way to do it is creating a cron. And if you're not familiar with the cron, it's a way you can just timing your workflow. And this part is actually what made me to use GitHub Actions. So I want to run the script or scrape the data every day in the morning. So the coach wants to go there, wants to go to the Shiny app as updated data. And with this cron schedule, if you're not familiar with the syntax, so the first one here is for the minutes. The second one here is going to tell you the hours, the third day of the month. The next one is the month. And then the last one is the days of the week. If you put the stars, it means that you will run this case every day of the month. It will run every day, every month, and it will run every day of the week. 30 here, because in the minutes, that means it's going to run on the minute 30. And then here, the hours, that means it's going to run in this case at 5 a.m. and 5 p.m. So if you use this trigger, your workflow will run every single day at 5.30 a.m. and then 5.30 p.m. And this is what I was kind of looking for, so I don't have to go and run the script every single day.
will run every single day at 5.30 a.m. and then 5.30 p.m. And this is what I was kind of looking for, so I don't have to go and run the script every single day.
Jobs, runners, and steps
So the jobs is what you're going to create to kind of tell the GitHub what you want to do. So it can either be run a script or run a test or labeled. And then each job runs as a runner. And then each job also has steps and actions. And you need to give an ID to the job, and I'll explain a little bit why.
Usually you can run multiple jobs, depending on what you want, and also within the limit of GitHub actions. GitHub actions is free, but it has a certain limit, the jobs you can run.
For the most part, jobs are independent, meaning they run in parallel. But you can have an option where they're dependent on each other. And if you look here in this example here, you'll run job number one, and then you have job number two. But for job number two to run, job number one has to run successful. So given a practical example, actually in my case, so I'm trying to scrape data from the GLeague website. So that's my job number one. And then job number two would be deploying the Shiny app, for example. So to deploy the Shiny app, I need to have the data scraped successfully first. And then job three here in this situation is kind of the same way. So job one and job two got to run successful, so with no errors for job number three to run.
So what are the runners? So the runners are type of machines where your job is run on. So GitHub does a good job at hosting virtual environments, and it pretty much covers all the machines. So we have Macs, Linux, and Windows. But you can also do your own or create your own runner.
Steps are also within the jobs. So with the steps, you can run commands, run tasks, or run actions. Again, those are in the limit as long as you stay with the user limits. And I'm going to show you next a little bit of all these steps with an example.
And then actions, you can install a software environment or set up authentication or complete other type of tasks. So let me show you. I'm going to stop sharing and show you an example that I have here.
Live example walkthrough
All right. So this is an example that I ran this morning. So I have here the R file with the scrape from the NBA. So this is what I want to here. Let me show this part. So this is the data that I want to scrape. These are all the G League players from last year, regular season. I want to look at the shooting percentage for each area. So this is the R script, the code that I ran to to scrape that. And then kind of show you here. So I already have the folder with the workflow.
And this is the email file. So kind of tell you the steps that I went through here. So here's the just the name of your action. And then here is the event part. So I'm saying here trigger the action when I push to the main branch. And then here is the job. Also, you got to give a name to the job because if you want to have jobs depend on each other, you got to identify them. And so this is the runner that I met. I put Max. You could put in this case either one, honestly, because it's run on GitHub. So it doesn't really matter because it's just scraping.
And then this part here, you always going to need this if you use R. This action here is for GitHub check your repository. And then this action here is telling you the GitHub to install R. So this is going to make sure it's going to check your repository. And then also here that this one that you make sure that you have R installed. The next step is make sure that you have the package that you need installed as well. So you're going to put install the name, install package. I mean, you could give it any name you want and then run. And then you're going to install all the packages you need. For me, because it's very simple, you don't need to set a package. This is probably the easiest way. But you could create a different outside file where you put all the packages you need. Then you just run it.
And then so as of right now, I have the trigger. I have the R installed. And I have I told GitHub where to look at it for my repository of what I want to run. So the next part is to run the script. So here I'm going to put name. I call it scrape and then run. So I'm saying I'm going to put R script and then that's the name of the R script that I want to run. So if you're going to go look here back, that's the same name.
scrape at the end here, I tell them to write as the CSV file and send it, as you said here, send it to the data folder.
So now let me go back here to the GitHub. So I told it to run there. And this part here is just telling me to add the file to the data folder. And then this is also this is just default by GitHub. GitHub creates a token for you and also creates calls to actions. So you need to have this at the end every time.
So I ran this. And if you want to look at it. So I ran this in the morning. So if you go here, actions. So this we're running this morning. And if you see the check sign, that means everything went through. If you see a problem here, you'll have a red cross. So if you click it here and you want to look at your action here. So here it sets up the job, runs and checks your repository. Here would make sure R is installed. And then the next one, you want to install the package. So you can see all the package that were installed. And then scrape, which is the name of my R file. And everything went through with no problem.
And the last one is just complete the job. So the way for me to check it, I came here, test. So I will go data and then I have the file here with all the data scrapes. So if you click actions here and then you create a new workflow, you can either. So this R package. So GitHub kind of recommends you a GitHub workflow here. This one is for to check with R package. If you want to look at what I said in the beginning. So if you want double check, if the change that you made to your package didn't break anything, you can use this as a workflow to kind of check that. But you can also create your own setup workflow. And so it gives you an example.
And another thing here, you have the marketplace where it can give you different actions that you can use. So like if I want to do shiny, shiny apps, I click it here. And then let me actually full. And then it'll tell you here the code to use for the shiny app. So this one will be at other step or nuclear. You could create a new a different job and to deploy a shiny app.
So that's what I have for today. Let me know if you have any questions.
Q&A
Thank you so much, Michelle. I see a few questions are coming in on the Slido right now. And one that I was curious about, as well as like thinking about this information that you're pulling in at a high level, what information are the coaches then a high level? What information are the coaches then accessing in the shiny app?
A lot of is, you know, four factors. Look at shooting percentage by by location, location, location, efficiency, team efficiency, player efficiency, look at lineups. Those are the type of things they they look at, they are looking for. With the coach, I'm working on it with it. It's more kind of like put in the way where that coach can, you know, just go right away, understand what what kind of things that coach needs to look at it. And, and he's there for to kind of support the scouting for.
Thank you. I see Richard asked a question about what are the most important packages that you use. And I think this would be helpful to ask the whole audience as well. If people want to share in the chat too. For this specific project or just in general?
I mean, it depends what you want. Of course, I mean, we know diverse is a well known package everybody uses is very handy. It depends if you want to scrape if you want to do modeling. So tidy models, for example. I mean, I think it depends what is your goal and what do you want to accomplish with your project.
Another anonymous question is, do you have some resource recommendations for going more in depth on this topic? I mean, just use GitHub documentation. I think that is very good. Probably that will be the first step or the where to go. That's what I I use for the most part, honestly.
And one of the anonymous ones was, is there a possible way to get more information about One of the anonymous ones was, is there a Python equivalent of your code?
The scraping part or actually the actions? So with GitHub, you can use Python as well. Yeah. If that is the question, the scraping of I mean, I believe so. I'm not familiar with it, but I think, yeah, for sure, that is that is a similar package where you can scrape from the API.
Awesome. Thank you. And then, Stefan, I see that you just asked a few questions in the Zoom chat too, and one being, are there memory limits subject to the action?
Hi. So I'm from Switzerland. I have exactly this question because it seems that this is serverless service GitHub action is about it. Is it true? So that if you run your scraping routines, then there must be a virtual machine where it's running on, or at least there must be a hardware where it is performed, I suppose. Yes. GitHub is like a virtual machine. That's what the runners are for. So you can use what virtual machine you want. But you can use your own or customize your own as well. The question I have is, if I would scrape a little bit more of data as I've seen it now, and I have maybe in the memory four gigs of data, is it possible or not? For instance, I have tasks running in R which have 5.6 gigs. I'm not 100% sure. I would say yes, but I could be wrong. I mean, yes, my example is very little. So I had no issue. I haven't tried with the bigger data.
If I can just chime in here for a second. Someone dropped a link in the chat for the pricing for GitHub actions, and there are storage limitations associated with that. So yeah, make sure you take a look at that reference. GitHub actions is free if it's a public repository. So if it's public, it should be free, of course, with limitations, but those limitations are pretty big.
Thank you. I think David asked a question. You said great method to automate data refreshes. Could you discuss other approaches to automating data refreshes? And you said, for example, RStudio server. I don't know if that's a question that you want to answer, Michelle, or I could ask Mitch as well. Yeah, maybe. Mitch probably will be a better resource for this one.
So in terms of, can you ask the question once again, Rachel? I just want to make sure I understand what the context was there. Yeah, and David, feel free to jump in too, but I see the question was, this is a great method to automate data refreshes. Could we discuss a few other approaches to automating data refresh as well?
Yeah, I'll approach that a little bit here from the professional product side of things. So on our professional products, those are server-based products as well. And if you're not familiar, RStudio Connect is essentially a deployment host for all of your data science products. So in this particular example, one method of doing that would be to take your script, that script that Michelle had written, and drop that in as an R Markdown document. You can then actually publish that R Markdown document to RStudio Connect, and there's a scheduling feature on RStudio Connect that would allow you to have that data refresh at different time iterations. So yes, there are other ways to refresh data. And again, that's kind of more on the professional side of with RStudio products, but Connect would allow you to do that.
Another question is, it looks like for the Shiny example that you supplied GitHub with the environment variables for the Shiny credentials. And someone just wanted to know, how do you actually do that? You have that in once you log in on your Shiny website. So once you, it's the Shiny app. Okay, so it's on Shiny app site where you share. Yeah, and then you click on your app, and then it will show you the Shiny credentials. There's a settings there where it shows you the details, and one of those are those credentials.
Pani, or apologies if I pronounced your name incorrectly. I saw you asked, what's a good way to learn GitHub Actions for beginners?
Honestly, just doing. I know start a little and then build from there. That's kind of how I started. I mean, that's always the best way.
Michelle, if I can jump in here with a related question. Can you talk a little bit more about your motivation for doing this? And I think that's one thing, and I know you said you had tried to, you know, you wanted to automate this script, but can you talk a little bit more about resources that you potentially used, too? Because I think that's probably one question that others on this call may be considering is, I have this, I may have a related problem, and this is a great resource. I'm sure you used others as you were putting this together. So can you talk maybe just a little bit about some other resources that you may have used to just put some of these pieces in place?
Yeah, honestly, I mean, I've been, I heard about GitHub Actions for a while, and I kind of started, decided to take a look when I had the problem. I mean, I don't know much about the connector one, but I, you know, you have package where you could deploy or refresh your R script in your machine. But for me, I think the most important part was the optimization part where I didn't need to be on my computer to kind of run the script. And GitHub Actions kind of did all of that.
I'll be honest, I haven't tried the deployment part of the Shiny app. That's the next step for me. So, maybe, you know, with Shiny, because it's a little more complex, I'll probably need a little more, I'll need other resources. But I think for this part, where it scrapes, the scripted data, I think, I mean, it's very easy. And it does the job for you.
Working with coaches and building the app
No, that's helpful. I'm also, I'm curious, myself, like how that process went for you internally? Like, were people already using R? Or did you kind of have to explain, like, what Shiny is? Or thinking about sharing that with people? Or what was that process like? Yeah, well, the coaching, no, I didn't know much about Shiny. She kind of, the coach kind of came to me with a promise and said, listen, I need something where I can make my life a little easier in terms of doing the season with the scouting. Instead, I'm just going to the cheerleague website and try to find all the stats. And I kind of, honest, with my side, I kind of suggest that I can probably create an app that looks like a website that has all the information that you need right there. And you don't need to go to 20 pages to look for the information that you need for that specific game.
Because even sometimes for a team, you know, you can't just go to 20 pages and look for that specific game. Because even sometimes for, you know, if it's, every game is different. So they might need information for one, certain information for one game and another type of information for another. And then, and instead of being 20 pages, it's 30 pages. So for that coach, it was more, how I can make my life easier during the season, because it's already crazy with the amount of games they have, with the amount of practice and all the responsibilities they have. And, you know, if I save an hour a day, that's huge.
So they didn't know, or the coach didn't know what was, still don't know honestly, which is fine. So, you know, as long as their coach knows how to navigate with the Shiny app, it's totally fine with me. We kind of talk with each other, see the best ways to kind of, how you display better, how you, what kind of things they want, when a certain order they want it.
Rachel, I can kind of chime in here a little bit. I think this, as Michelle gets set back up again, I think it's important for others here on the call to, if you're just getting started, and you're not sure, hey, how do I do something? I think the way that Michelle described her process and the kind of the motivation behind it is that there was, you're solving a very specific problem for another member in your organization. And it can be as simple as just aggregating data from different locations. And my recommendation, based on my experiences, is similar to what Michelle has kind of described here, is that try to find small victories, rather than trying to maybe plan something out for, hey, this is going to be a 12-month, 18-month project. The timelines with a lot of sports organizations are very condensed because of the season, because of the volume of games, or whatever the case may be. So try to focus on small victories, especially as you're getting started, just to help create more efficient processes, streamline workflows for other members in your organization. And often that then leads to larger opportunities, bigger-scale type projects, especially as you're getting started.
So I think the way that Michelle described that, and the motivation for her project, saying, hey, someone needed, rather than going to 20 different websites, we were trying to just create a centralized resource for data. And I think that's a really, really good approach to solving a problem for an organization. And it looks like Michelle is on, so I will turn it back over to her.
Sorry, my internet is being bad.
No problem. Michelle, I was just saying that, just as you were trying to get back connected again, I commended you for your approach in terms of solving a problem within your organization, and using just data aggregation as one step to potentially, and how that may potentially lead to future conversations. And maybe you can talk a little bit about this in terms of what's transpired since you've put this in place? Has that led to additional conversations? Has that led to potential more interactions with your coaching staff?
Well, it's kind of still a building process. The goal is to be ready to go before the season. This is a side project, so I'm not directly working for the organization. Honestly, I'm just working with a specific coach. But I mean, I'm hoping it kind of, you know, help from here in terms of what they need, what things they look for, and kind of makes their life easier. That's the goal. And then it's kind of, we'll see, I mean, how the season goes. And the goal is kind of for the coach to test it out and see if it helps. If it doesn't help, what helped the most, what things we could improve, and then kind of go from there.
What did that communication process look like from the beginning? I know the coach said, oh, I have this problem that I need you to help me solve. But did they kind of have an idea of what they wanted it to look like? Or did you like draw it out?
It was kind of both. So they did have an idea. I kind of suggest a few things, I'll show a few things out how we could look like, given examples. Example from college, kind of be a mix of the G League website. And it kind of built it together in a sense, all right, I made this change, can you look it up? How did you like it? Do you want this way? Do you want that way? One time the coach had said, told me that I prefer to have this table up top. So kind of work together and see what things, you know, they like better, what things they prefer. And try to please them as much as possible. Because they are the ones that are going to work with it. They are the ones that are going to use it. So the easier it is for them, the more they're going to use it. And that's kind of the goal.
Thank you. I see there's one last question in the Slido chat. And then I'm going to double check the Zoom chat, too. But it says, do you also use or have you used Docker? If so, are there any major usage or feature differences you've noticed?
I haven't used it. I know you can use Docker with GitHub actions. I don't know much about it. Something I've heard of it. But it's definitely something that I look forward to kind of learn a little bit more.
Getting into sports analytics
Brian asks, any advice for someone who wants to get into sports analytics, like volunteering to help a simple project that Bill mentioned earlier, or how to network with coaches?
Michelle, do you have any advice? Yes. Honestly, have something ready to show, and then contact the coaches is the best way. If they need help, or if you come up with something that's going to help them, they're going to hear you. So try, and I know it's hard sometimes if you're not in the field, but try to reach out to coaches and kind of show them, hey, this is what I built. Are you interested? I think I could help you. Something in those lines, I think that would be probably the best way to go about it.
Yeah. Oh, I was just curious if, Michelle, you just reach out to them over email, or LinkedIn, or how do you? Well, this one, I knew the coaches, so I kind of, you know, I play basketball overseas, so it kind of opens up a little bit the doors for me. But yeah, I mean, I've been reaching out to coaches before for some reasons, so kind of build your network, show that you can do things that help them, and they are willing to kind of work with you. I mean, if you go for an MBA, of course, probably it's a little harder because they have all the resources, but maybe if you go for low levels, like college or even G League, I mean, G League, they have some resources, but it's not as like an MBA, for example. So yeah, definitely professional sports or the major sports are a little, it's a little harder because they do have the resources.
But if you want to start in the sports, maybe try low levels, college, basketball, football, even football now, they have the mid-major, the big, but try mid-majors, for example, they probably don't have those resources for football, for college football, for example. So yeah, definitely have something ready to show and contact our network as much as you can.
Yeah, I was going to say, Michelle, your example here today about, that was more of a workflow related example. And it was because you'd had that engagement with a coach and had a conversation about like, hey, we need to solve this very specific problem. What I would add to that is for someone who may be completely outside of sports, looking to get into sports, one thing that captures the attention of people, of coaches, personnel, people, just front offices is winning. So if you can, if you have a study, you have an analysis that says, hey, this increases the likelihood of a win by X percent or overall wins increases by whatever the number is, that's going to capture the attention more often than not of someone that's working for a team, working for an organization, because especially at the highest levels of sport, it really comes down to one thing and that's winning.
especially at the highest levels of sport, it really comes down to one thing and that's winning.
And so if you can, if you have analysis that shows that in addition to the workflow discussion, which again, I think maybe sometimes might be a little more nuanced as you're working within an organization or in Michelle's example, you have a specific connection to someone and you've had that back and forth, but winning is the ultimate objective at the highest level. So if you have analysis that says, hey, this is going to help, this is going to help your organization win. That could be another entry point for some of you who are maybe outside of sports looking to get into sports.
Sure. Mitch, that's a great point. And actually, it's a universal point. When I worked in marketing research and consulting, we had our intellectual property. We sold a ton of business because we could show that a company's ROA was correlated with a linear regression at a highly statistical level with these benchmarks. And honestly, that was a piece that sold everything, just like winning. So this was to your traditional business person, you increase your shareholder ROA or your ROE, you're going to make people happy. They're going to listen to you. And, you know, we have the statistics and the regression that showed it, you know, each amount of dollar that they did this or did that was an incremental gain. And it speaks volumes, you know, and as you said, with sports, it's about winning. So, you know, for people wanting to get anything, find the metric that's most important. It's not the same for every industry. But that's what's going to get people listening.
That's a great point, Brian. And speaking of the metrics that are most important, I see Simon, you asked, what are the typical asks for analytics teams from coaching staffs in basketball? So similar to the NFL fourth down decision problem?
I do not have any experience to work with the teams. So, I mean, the only thing that I was asked is just kind of build this app. But, you know, I'm sure coaches ask similar questions for basketball. So instead of a fourth down is if you should fall at the end of the fourth quarter when you up by one, for example, or up by one, up by two. So I think it would be the same type of resource, kind of think about problems that you use or situations in basketball and look at what would be the best strategy. Player development, I think is a big thing coming up, too. It's like, what kind of metrics or what kind of things they can look at it to improve players.
I just dropped a couple links into the chat of a few follows that I'd recommend on Twitter. So the first is Ben Falk. Ben used to work for the Trailblazers and then the 76ers. I know Ben, personally, I think he's one of the smartest people I've ever met. So it's a plug for him and his work. He has a website called Cleaning the Glass. I highly recommend it for those of you that are interested in just learning more about basketball analytics. He provides just a unique perspective on how data can be used in basketball. And then also I added Seth Partnow, I may be mispronouncing his last name, but Seth has experience both in basketball, he worked for the Milwaukee Bucks. He's also written for the Athletic. And I think most recently, he's actually working with Stats Bomb. So again, just unique perspective, coming from a lot of different angles, talking about analytics and sport and specifically basketball.
One other conversation I see happening in the chat, and I just wanted to dive into it if anyone wants to add anything. I see Luke, you were asking around. You're saying people are running this type of data for DFS, which I learned today is daily fantasy sports. And props as soon as prices are revealed, time is of the essence, the sooner you can organize data, you find value.
Is that I know today your presentation, Michelle is more so on like a side project and working with this this team. But I'm curious, is that something that you work with today at FanDuel? Or what is our? Yeah, I do work with the daily fantasy. So yeah, I mean, you can use this type of data or kind of predict performance to see the value of that player specific player for the daily fantasy. It's definitely a way to look at it and kind of have an advantage. I mean, for sure.
No, as a question, and not especially for this one, this is a great session. I really enjoyed it. And I took all the notes that people have put on to the chat links. So hopefully I can follow some of these and start educating myself a bit more. And what I'm keen on is that, would you be able to see something similar as a next session or in next few months? A talk specifically upon, you know, how to analyze, you know, cyclist performance, performance, you know, like the professional cyclist performance.
I'm keen on that particular sport. I'm also keen on R, but I've not reached to that stage that I can do it myself. But I'm just trying to bridge that gap, basically. How can I actually start analyzing some of the, you know, data? Because cycling is a heavily data intensive sports. Nothing gets as competitive as, you know, cycling and extracting data in real time and then kind of making some quick decisions based on the real time data. And I was just wondering if we could get some example using R, you know, if somebody is able to bring that to life, then that'll be fantastic.
Definitely. And then another good place that, and I just wanted to mention this before we all go is, we did start a channel on the R for data science online learning community dedicated to sports analytics. So that could be a great place to ask that question too, and try and connect, just connect with different people there. So it's r4ds.io slash join. And then once you're as part of that group, you can join right away. There's a channel that's just called sports analytics.
But it's also a great place for us all to follow up with other questions. And if we have resources or packages we want to share, I can go through this chat and pull the list as well.
And then one other thing about the next meetup too, so that you know what to expect for the future. I just posted a placeholder invite for Wednesday, November 10th, the same time. So 12 Eastern time, Tom Bliss is going to be presenting on the NFL big data bowl. So if anyone's interested in that, we'd love to have you there as well.
Before we go, I just want to open up to see if there are any other last questions that you want to ask Michelle. Thank you all so much for joining. I put into the chat right now if you ever have any suggestions or general feedback on the meetup. There's a Google form there where you can include some feedback. Would love to have you all join us speakers in the future too. So feel free to reach out to me and meet up or LinkedIn or email me directly. But just want to say thank you so much to Michelle for speaking. I really appreciate it. Thank you so much for inviting. Thank everyone to show up.
And the next one I saw just someone just asked in the chat is November 10th at 12 Eastern time. And I'll announce that on the meetup site and then make a LinkedIn event for it too. But thank you all for joining and have a great rest of the day.
