class: title-slide, center background-image: url("2021 ESSA Webinar/Images/Front page.png") background-size: Cover
<style type="text/css"> .reduced_opacity { opacity: 0.5; } </style> --- class: left background-image: url("2021 ESSA Webinar/Images/Home.jpg") background-position: 100% 50% background-size: 40% 65% # About me <br> ๐ I'm an applied sports scientist -- I currently work with two ๐teams -- - Gold Coast Suns Football Club (AFL) - Newcastle Knights Rugby League Club (NRL) -- ๐ I live in an pretty amazing place (Newcastle) --- # How are you analysing your data? <br> .pull-left[ <img src="https://1xw7c62t8pgj1bq3qetvvsg1-wpengine.netdna-ssl.com/wp-content/uploads/2020/06/Coach-at-Whiteboard-1024x536.jpg" width="110%" /> ] .pull-right[ <img src="https://media.giphy.com/media/f5dv1g0Af3KNJneSC3/giphy.gif" width="94%" /> ] --- # Why learn a new program? <br> .pull-left[
Save time <br>
Produce high quality reports or visualisations <br>
Staying up to date with the industry <br>
Personal development <br>
Analyse complex datasets more easily <br>
Reproducibility of reports - automate workflows <br>
SAVE TIME ] .pull-right[ <img src="https://media.giphy.com/media/PhZlwqetWEJe0tBZ1O/giphy.gif" width="65%" /> ] --- # But Excel is working for me <br>
Excel is easy to use and has a place in data entry, analysis and visualisation --
Lots of help readily available --
Widely used by practitioners in sport --
However, it has it's limitations <br> <img src="http://www.riskedgesolutions.com/wp-content/uploads/2020/09/Excels-768x454-1.png" width="45%" style="display: block; margin: auto;" /> --- # But Excel is working for me And soon enough.... <br> <img src="2021 ESSA Webinar/Images/ExcelStoppedWorking.png" width="50%" style="display: block; margin: auto;" /> <br> .center[ Credit: Dr Jacquie Tran (ESSA Forum, 2019) and Dr Alice Sweeting (WCSF Workshop, 2019) ] --- class: title-slide, top, hide_logo, inverse background-image: url("2021 ESSA Webinar/Images/Knights.jpg") background-size: cover # Part 1 - R programming --- # R programming
**Why use R?** -- - Reproducibility -> automate workflows -- - Simple to really complex analysis -- - Its free -- - Can create complex dashboards, or simple PDF/HTML outputs -- - Fast and efficient analysis -- - Handles big data sets really well (i.e., raw GPS files) <img src="https://media.giphy.com/media/3o751PUITEcyysxiUM/giphy.gif" width="35%" style="display: block; margin: auto;" /> --- class: center # What others think R looks like <br> <img src="https://media.giphy.com/media/A06UFEx8jxEwU/giphy.gif" width="50%" style="display: block; margin: auto;" /> .small[ Credit: Dr Alice Sweeting (WCSF Workshop, 2019) ] --- # Where to start with R .pull-left[ - Need to download [R](https://www.r-project.org/) first <br> - I recommend using [RStudio](https://www.rstudio.com/products/rstudio/) which is an interface for R, making it less 'scary' and more user friendly <br> - Practice using a data set you know and understand - start out with some simple plots <br>
There are tonnes of resources available, even some relevant to sport ] .pull-right[ <blockquote class="twitter-tweet"><p lang="en" dir="ltr">๐จ New post & video tutorial ๐จ<br><br>How sports scientists can use ggplot2 in R to make better visualisations ๐<br><br>Great visualisations help communicate your message more clearly. This post shows you an example of my process. <a href="https://twitter.com/hashtag/rstats?src=hash&ref_src=twsrc%5Etfw">#rstats</a><a href="https://t.co/SsBae0nDU1">https://t.co/SsBae0nDU1</a> <a href="https://t.co/fwNdqrkDzZ">pic.twitter.com/fwNdqrkDzZ</a></p>— Mitch Henderson (@mitchhendo_) <a href="https://twitter.com/mitchhendo_/status/1254568836986048512?ref_src=twsrc%5Etfw">April 27, 2020</a></blockquote> ] --- class: title-slide, right, hide_logo, inverse background-image: url(https://www.newcastleknights.com.au/contentassets/b1476168d8634162aae7dda10e8ed390/kalyn-gym.jpg?center=0.3%2C0.5&preset=photo-inline) background-size: cover # Example 1 - strength data --- # Create a project .pull-left[
Projects help to organise files and locations <br>
In RStudio, click File - New Project - New Directory - New Project <br>
Projects allow all files (scripts, figures, output etc) to be stored together ] .pull-right[ <img src="2021 ESSA Webinar/Images/Project.png" width="100%" style="display: block; margin: auto;" /> ] --- # Import strength testing data
**Packages** provide functions to perform different tasks ```r install.packages("readr") ``` -- <br>
Import .csv strength testing file using **readr** package ```r library(readr) Strength <- read_csv("2021 ESSA Webinar/Files/Strength.csv") ``` -- <br>
Or import .xlsx file using **readxl** - note the different location to file ```r library(readxl) Strength_xlsx <- read_excel("C:/Users/Heidi.Thornton/OneDrive - GCFC Limited/Documents/Strength.xlsx") ``` --- # View data
We can view our data set using **print** or **head** ```r print(Strength, n=6) ``` -- ```r head(Strength, n=6) ``` ``` ## # A tibble: 6 x 8 ## Date Name Season Period `Bodyweight (kg~ `3RM Weighted C~ `3RM Bench Pres~ ## <chr> <chr> <dbl> <chr> <dbl> <dbl> <dbl> ## 1 1/11/2020 Athlete 1 2021 Start~ 85 120 95 ## 2 1/11/2020 Athlete 2 2021 Start~ 86 125 97.5 ## 3 1/11/2020 Athlete 3 2021 Start~ 88 122. 100 ## 4 3/11/2020 Athlete 3 2021 Start~ 89 125 102. ## 5 1/11/2020 Athlete 4 2021 Start~ 90 122 110 ## 6 1/11/2020 Athlete 5 2021 Start~ 100 90 120 ## # ... with 1 more variable: 3RM Box Squat <dbl> ``` --- # Summarise data
Using the **tidyverse** package, we will create some summary statistics from the dataset -- ```r Strength_summary <- Strength %>% group_by(Name) %>% filter(Season == 2021) %>% summarize( 'Max chins (kg)'= max(`3RM Weighted Chins`), 'Change chins (kg)' = (max(`3RM Weighted Chins`))-(min(`3RM Weighted Chins`)), 'Max bench (kg)'= max(`3RM Bench Press`), 'Change bench (kg)' = (max(`3RM Bench Press`))-(min(`3RM Bench Press`)), 'Max squat (kg)'= max(`3RM Box Squat`), 'Change squat (kg)' = (max(`3RM Box Squat`))-(min(`3RM Box Squat`))) ``` --- # Summarise data
Using the **tidyverse** package, we will create some summary statistics from the dataset ```r print(Strength_summary, n=10) ``` ``` ## # A tibble: 8 x 7 ## Name `Max chins (kg)` `Change chins (k~ `Max bench (kg)` `Change bench (~ ## <chr> <dbl> <dbl> <dbl> <dbl> ## 1 Athlete 1 125 5 97.5 2.5 ## 2 Athlete 2 128. 2.5 108. 10 ## 3 Athlete 3 130 7.5 105 5 ## 4 Athlete 4 128. 5.5 115 5 ## 5 Athlete 5 95 5 128. 7.5 ## 6 Athlete 6 118. 7.5 108. 2.5 ## 7 Athlete 7 110 5 120 5 ## 8 Athlete 8 115 2.5 100 2.5 ## # ... with 2 more variables: Max squat (kg) <dbl>, Change squat (kg) <dbl> ``` --- # Visualise strength data
Create a summary table of strength testing results using **formattable** package -- ```r library(formattable) formattable(Strength_summary, align = c('c'), list( `Change chins (kg)`= color_tile("white", "#71CA97"), `Change bench (kg)`= color_tile ("white","#71CA97"), `Change squat (kg)`= color_tile("white","#71CA97"))) ``` -- <br> <table class="table table-condensed"> <thead> <tr> <th style="text-align:center;"> Name </th> <th style="text-align:center;"> Max chins (kg) </th> <th style="text-align:center;"> Change chins (kg) </th> <th style="text-align:center;"> Max bench (kg) </th> <th style="text-align:center;"> Change bench (kg) </th> <th style="text-align:center;"> Max squat (kg) </th> <th style="text-align:center;"> Change squat (kg) </th> </tr> </thead> <tbody> <tr> <td style="text-align:center;"> Athlete 1 </td> <td style="text-align:center;"> 125.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #b8e4cb">5.0</span> </td> <td style="text-align:center;"> 97.5 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #ffffff">2.5</span> </td> <td style="text-align:center;"> 150.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #e1f3e9">5.0</span> </td> </tr> <tr> <td style="text-align:center;"> Athlete 2 </td> <td style="text-align:center;"> 127.5 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #ffffff">2.5</span> </td> <td style="text-align:center;"> 107.5 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #71ca97">10.0</span> </td> <td style="text-align:center;"> 145.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #ffffff">3.0</span> </td> </tr> <tr> <td style="text-align:center;"> Athlete 3 </td> <td style="text-align:center;"> 130.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #71ca97">7.5</span> </td> <td style="text-align:center;"> 105.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #cfeddc">5.0</span> </td> <td style="text-align:center;"> 125.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #e1f3e9">5.0</span> </td> </tr> <tr> <td style="text-align:center;"> Athlete 4 </td> <td style="text-align:center;"> 127.5 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #a9dfc0">5.5</span> </td> <td style="text-align:center;"> 115.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #cfeddc">5.0</span> </td> <td style="text-align:center;"> 135.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #71ca97">12.5</span> </td> </tr> <tr> <td style="text-align:center;"> Athlete 5 </td> <td style="text-align:center;"> 95.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #b8e4cb">5.0</span> </td> <td style="text-align:center;"> 127.5 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #a0dbb9">7.5</span> </td> <td style="text-align:center;"> 130.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #e1f3e9">5.0</span> </td> </tr> <tr> <td style="text-align:center;"> Athlete 6 </td> <td style="text-align:center;"> 117.5 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #71ca97">7.5</span> </td> <td style="text-align:center;"> 107.5 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #ffffff">2.5</span> </td> <td style="text-align:center;"> 155.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #e1f3e9">5.0</span> </td> </tr> <tr> <td style="text-align:center;"> Athlete 7 </td> <td style="text-align:center;"> 110.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #b8e4cb">5.0</span> </td> <td style="text-align:center;"> 120.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #cfeddc">5.0</span> </td> <td style="text-align:center;"> 152.5 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #bbe5cd">7.5</span> </td> </tr> <tr> <td style="text-align:center;"> Athlete 8 </td> <td style="text-align:center;"> 115.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #ffffff">2.5</span> </td> <td style="text-align:center;"> 100.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #ffffff">2.5</span> </td> <td style="text-align:center;"> 135.0 </td> <td style="text-align:center;"> <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #e1f3e9">5.0</span> </td> </tr> </tbody> </table> --- # Squat result by testing point
Create dumbell plot showing testing result by testing point -- ```r Strength %>% filter(Season == 2021) %>% # Dumbell plot using geom_line and geom_point ggplot(aes(x= `3RM Box Squat`, y= Name)) + geom_line(aes(group = Name))+ # add line between testing points geom_point(aes(color=Period), size=4) + # a dot for each testing point ggtitle("3RM box squat", subtitle = "By testing point") + # title xlab("Weight (kg)") + # axis label theme_classic()+ # simple theme theme(legend.position = "none", # hide legend axis.title.y = element_blank()) # hide y axis title ``` --- # Squat result by testing point <br> <img src="2021 ESSA Webinar/2021-ESSA-Presentation_files/figure-html/dumbell plot2-1.png" style="display: block; margin: auto;" /> --- class: title-slide, left, hide_logo, inverse background-image: url("https://athleticsweekly.com/wp-content/uploads/2016/12/nordbord-hamstring-750x450.jpg") background-size: 100% # Example 2 - Nordboard data --- # Nordboard data
Import **Nordboard** data -- ```r Nordboard <- read_csv("2021 ESSA Webinar/2021 ESSA Webinar/Files/Nordboard.csv") head(Nordboard, n=8) ``` ``` ## # A tibble: 8 x 8 ## Player Date RowIndex `Average Left F~ `Average Right ~ `Max Left Force` ## <chr> <chr> <dbl> <dbl> <dbl> <dbl> ## 1 Player 1 22/11/2019 10 394 415 405 ## 2 Player 10 7/12/2020 6 414 399. 438 ## 3 Player 10 15/12/2020 4 341. 331. 392. ## 4 Player 10 18/01/2021 2 498. 462. 508. ## 5 Player 10 3/02/2021 0 466. 439. 474. ## 6 Player 10 3/02/2021 2 459. 437. 471 ## 7 Player 10 8/02/2021 2 422. 446. 437. ## 8 Player 10 20/02/2021 4 406. 402. 422 ## # ... with 2 more variables: Max Right Force <dbl>, ## # Difference_Max Force Imbalance <dbl> ``` <img src="Images/NordBoard.png" width="18%" style="display: block; margin: auto 0 auto auto;" /> --- # Clean Nordboard data
Add a new column for sets ('row index' is incorrect) ```r Nordboard <- Nordboard %>% group_by(Player, Date) %>% mutate(Set = seq_along(RowIndex)) # Then reorder variables Nordboard <- Nordboard[c(1:2,9,4:8)] ``` --- # Clean Nordboard data
Add a new column for sets ('row index' is incorrect) <br> ``` ## # A tibble: 12 x 8 ## # Groups: Player, Date [11] ## Player Date Set `Average Left F~ `Average Right ~ `Max Left Force` ## <chr> <chr> <int> <dbl> <dbl> <dbl> ## 1 Player 1 22/11/2019 1 394 415 405 ## 2 Player 10 7/12/2020 1 414 399. 438 ## 3 Player 10 15/12/2020 1 341. 331. 392. ## 4 Player 10 18/01/2021 1 498. 462. 508. ## 5 Player 10 3/02/2021 1 466. 439. 474. ## 6 Player 10 3/02/2021 2 459. 437. 471 ## 7 Player 10 8/02/2021 1 422. 446. 437. ## 8 Player 10 20/02/2021 1 406. 402. 422 ## 9 Player 10 22/02/2021 1 414. 444. 422. ## 10 Player 10 2/03/2021 1 398. 426. 418. ## 11 Player 11 11/01/2020 1 375. 365. 399 ## 12 Player 11 17/01/2020 1 397. 364. 404. ## # ... with 2 more variables: Max Right Force <dbl>, ## # Difference_Max Force Imbalance <dbl> ``` --- # Clean Nordboard data
Now we need to rename columns. This will make it easier to differentiate left/right -- ```r # First we will rename a few columns to have the side (L/R) written first Nordboard <- Nordboard %>% rename("Right_Average Force" = `Average Right Force`, "Left_Average Force" = `Average Left Force`, "Right_Max Force" = `Max Right Force`, "Left_Max Force" = `Max Left Force`) head(Nordboard, n=5) ``` ``` ## # A tibble: 5 x 8 ## # Groups: Player, Date [5] ## Player Date Set `Left_Average Fo~ `Right_Average ~ `Left_Max Force` ## <chr> <chr> <int> <dbl> <dbl> <dbl> ## 1 Player 1 22/11/2019 1 394 415 405 ## 2 Player 10 7/12/2020 1 414 399. 438 ## 3 Player 10 15/12/2020 1 341. 331. 392. ## 4 Player 10 18/01/2021 1 498. 462. 508. ## 5 Player 10 3/02/2021 1 466. 439. 474. ## # ... with 2 more variables: Right_Max Force <dbl>, ## # Difference_Max Force Imbalance <dbl> ``` --- # Long to wide format
When data is spread across columns, it can make it harder to visualise --
We can mimic what a **pivot table** might do in excel (but easier of course) using the **reshape2** package -- <br> <img src="2021 ESSA Webinar/Images/Wide to long.png" width="85%" style="display: block; margin: auto;" /> --- # Long to wide format
Using the melt function in the **reshape2** package, we can flip the dataset by selected variables ```r library(reshape2) Nordboard <- melt(Nordboard, id.vars = c("Player", "Date", "Set")) ``` -- ``` ## Player Date Set variable value ## 1 Player 1 22/11/2019 1 Left_Average Force 394.0000 ## 2 Player 10 7/12/2020 1 Left_Average Force 414.0000 ## 3 Player 10 15/12/2020 1 Left_Average Force 340.6500 ## 4 Player 10 18/01/2021 1 Left_Average Force 497.8125 ## 5 Player 10 3/02/2021 1 Left_Average Force 466.2500 ## 6 Player 10 3/02/2021 2 Left_Average Force 458.9375 ## 7 Player 10 8/02/2021 1 Left_Average Force 422.5000 ## 8 Player 10 20/02/2021 1 Left_Average Force 405.6875 ## 9 Player 10 22/02/2021 1 Left_Average Force 413.6250 ## 10 Player 10 2/03/2021 1 Left_Average Force 398.3750 ## 11 Player 11 11/01/2020 1 Left_Average Force 374.9375 ## 12 Player 11 17/01/2020 1 Left_Average Force 397.2500 ``` --- # Add a new column (split text)
Now we want to split the 'variable' column into 2 so we have a 'leg' column ```r Nordboard <- Nordboard %>% separate(variable, into = c("Leg", "Variable"), sep = "_") ``` -- ``` ## Player Date Set Leg Variable value ## 1 Player 1 22/11/2019 1 Left Average Force 394.0000 ## 2 Player 10 7/12/2020 1 Left Average Force 414.0000 ## 3 Player 10 15/12/2020 1 Left Average Force 340.6500 ## 4 Player 10 18/01/2021 1 Left Average Force 497.8125 ## 5 Player 10 3/02/2021 1 Left Average Force 466.2500 ## 6 Player 10 3/02/2021 2 Left Average Force 458.9375 ## 7 Player 10 8/02/2021 1 Left Average Force 422.5000 ## 8 Player 10 20/02/2021 1 Left Average Force 405.6875 ## 9 Player 10 22/02/2021 1 Left Average Force 413.6250 ## 10 Player 10 2/03/2021 1 Left Average Force 398.3750 ## 11 Player 11 11/01/2020 1 Left Average Force 374.9375 ## 12 Player 11 17/01/2020 1 Left Average Force 397.2500 ``` --- # Visualise Nordboard data
Now I want to filter by one athlete to visualise max force over time -- ```r filtNordboard <- Nordboard%>% filter(Player == "Player 10") %>% filter(Variable == "Max Force") ``` -- <br>
Using a powerful visualisation package called **ggplot2** we can create a basic line chart ```r library(ggplot2) ggplot(data = filtNordboard, aes(x=Date, y=value, group=Leg, colour = Leg)) + geom_line() + ylab("Max Force (N)") + theme_classic() ``` --- # Visualise Nordboard data
But.... we can do better than that <br> <img src="2021 ESSA Webinar/2021-ESSA-Presentation_files/figure-html/working code 18-1.png" style="display: block; margin: auto;" /> --- # Visualise Nordboard data
Show the imbalance between legs <br> ```r Nordboard %>% filter(Player == "Player 10") %>% filter(Variable == "Max Force Imbalance") %>% mutate(Direction = ifelse(value > 0,"Right", "Left")) %>% ggplot(aes(x=Date, y=value, fill=Direction)) + geom_col(position = "identity") + ylab("Imbalance - Force (N)") + theme_classic() ``` --- # Visualise Nordboard data
Show the imbalance between legs <br> <img src="2021 ESSA Webinar/2021-ESSA-Presentation_files/figure-html/imbalance-1.png" style="display: block; margin: auto;" /> --- # Visualise Nordboard data
Visualise team by date <br> ```r # Filter our data by date and max force Nordboard %>% filter(Date == "10/03/2021") %>% filter(Variable == "Max Force") %>% # Summarise it by player and leg for the day selected above group_by(Player, Leg) %>% # Now calculate max force by leg by player summarise(maxForce = max(value)) %>% ggplot(aes(x = Player, y = maxForce, fill = Leg)) + geom_bar(stat = "identity", width = .6) + coord_flip() + theme_classic() + labs(title="Max force (N) by leg") + ylab("Force (N)") + theme(axis.title.y = element_blank()) ``` --- # Visualise Nordboard data
Visualise team by date <br> <img src="2021 ESSA Webinar/2021-ESSA-Presentation_files/figure-html/working code 20-1.png" style="display: block; margin: auto;" /> --- # Visualise Nordboard data Interactive box plots per athlete and leg using **plotly** <br> ```r library(plotly) target <- c("Player 10", "Player 21", "Player 24", "Player 18") Nordboard1 <- Nordboard %>% filter(Variable == "Max Force") %>% filter(Player %in% target) %>% group_by(Player, Leg, Date) %>% summarise(maxForce = max(value)) plot <- ggplot(Nordboard1, aes(x = Leg, y=maxForce, fill = Leg, colour = Leg)) + geom_boxplot() + theme_classic() + ylab("Force (N)") + theme(axis.title.y = element_blank()) + theme(panel.spacing = unit(2, "lines")) + facet_wrap(~Player, scales = "free") fig <- ggplotly(plot) fig ``` --- # Visualise Nordboard data Interactive box plots per athlete and leg using **plotly** <br>
--- class: left, hide_logo, inverse background-image: url("https://content.api.news/v3/images/bin/c1e6072e5a224657d0f9af62860978db") background-size: 100% # Part 2 - Power BI --- # Why Power BI? <br>
If you know how to use **Microsoft Excel**, you'll already know parts of **Microsoft Power BI** --
Create simple, powerful visualisations, in a time efficient manner --
It's **free** (desktop version) --
All calculations/formulas can be done directly in **Power BI** --
Download direct from the internet <br> <img src="2021 ESSA Webinar/Images/pb.png" width="18%" style="display: block; margin: auto;" /> --- class: left, hide_logo, inverse background-image: url("https://resources.goldcoastfc.com.au/photo-resources/2021/02/12/ac430f86-6d20-4d83-8b90-35817d0789a8/14GCNM20CH832463414_best.JPG?width=952&height=592") background-size: 100% # Power BI exmaple - wellness report --- # Wellness report .pull-left[
First, download **Power BI Desktop** from [here](https://powerbi.microsoft.com/en-au/getting-started-with-power-bi/) **Example will show** - How to import data - Create a table - Add filters - Create calculated columns - Formatting <br>
Create wellness report inspired by [Futbol AnalysR](https://www.futbolanalysr.com/) ] .pull-right[ <blockquote class="twitter-tweet"><p lang="en" dir="ltr">1/ Are you using a wellness monitoring dashboard with your team? <br><br>Does it start conversations with athletes or does it stop them from training? <a href="https://twitter.com/hashtag/PowerBiDesktop?src=hash&ref_src=twsrc%5Etfw">#PowerBiDesktop</a> <a href="https://twitter.com/hashtag/PowerBi?src=hash&ref_src=twsrc%5Etfw">#PowerBi</a> <a href="https://twitter.com/hashtag/PowerBiForSportScience?src=hash&ref_src=twsrc%5Etfw">#PowerBiForSportScience</a> <a href="https://twitter.com/hashtag/PowerBiForSport?src=hash&ref_src=twsrc%5Etfw">#PowerBiForSport</a> <a href="https://twitter.com/hashtag/DAX?src=hash&ref_src=twsrc%5Etfw">#DAX</a> <a href="https://twitter.com/hashtag/DAXMeasure?src=hash&ref_src=twsrc%5Etfw">#DAXMeasure</a> <a href="https://twitter.com/hashtag/SportScience?src=hash&ref_src=twsrc%5Etfw">#SportScience</a> <a href="https://twitter.com/hashtag/WellnessMonitoring?src=hash&ref_src=twsrc%5Etfw">#WellnessMonitoring</a> <a href="https://twitter.com/hashtag/Monitoring?src=hash&ref_src=twsrc%5Etfw">#Monitoring</a> <a href="https://t.co/Scbj2WYvS6">pic.twitter.com/Scbj2WYvS6</a></p>— Futbol AnalysR (@FutbolAnalysR) <a href="https://twitter.com/FutbolAnalysR/status/1410303765480046595?ref_src=twsrc%5Etfw">June 30, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ] --- # Useful resources <br>
Below are links to personal websites/twitter pages/ youtube etc .pull-left[ **R Studio** - [Mitch Henderson](https://www.mitchhenderson.org/) - [Alice Sweeting](http://sportstatisticsrsweet.rbind.io/) - [Neil Collins](https://www.sportscidata.com/) - [Jose Fernandez](https://twitter.com/jfernandez__) ] .pull-right[ **Power BI** - [Josh Trewin](http://futbolanalysr.rbind.io/) - [Roberto D'Onofrio Rondรณn](https://twitter.com/robertodono) - [Complementary training](https://complementarytraining.net/powerbi-course-video-1/) ] --- class: right, hide_logo, inverse, bottom background-image: url("https://resources.afl.com.au/photo-resources/2019/11/14/2c9782b4-2794-4956-9ae7-916d0e018502/GFRiGW19RCP759699483.JPG?width=952&height=592") background-size: 100% # Thank you and good luck! ####
[heidi.thornton@goldcoastfc.com.au](mailto:heidi.thornton@goldcoastfc.com.au)<br> ####
[heidithornton09](https://twitter.com/heidithornton09)<br> ####
[Heidi Thornton](https://www.linkedin.com/in/heidi-thornton-956354a0/)