Our Next Steps in Velocity Analysis in R

Previously we look at how to merge datasets and the subset our data to only include velocity based data, finally we produced our percentage of max velocity column. Today we will look at when and how long it has been since a player hit a high velocity. We will do this by first creating a column which gives the date of a players last 90% or higher and then how long it has been since that date.

  • Last 90% or higher date
    • VelocityData2 %<>% group_by(`Player Name`) %>%
      dplyr::mutate('Dateof90' = max(Date[which(PerCentVmax>90)], fill=0))
    • To note: Grouping by player name means we return a date for each individual player. Using dplyr:: specifies mutate from the dplyr package. Then we are saying return a column called 'Dateof90‘ which is equal to the last date a player hit a value of 90 or higher. The fill=0 means if a player has not hit 90% within the data it will return 0.
  • Next we will subset our data to only have one row of information per player which is the most recent data:
    • VelocityData3 <- VelocityData2 %>%group_by(`Player Name`) %>%
      filter(Date == max(Date))
  • Finally we will include a column that calculates the difference between the date of the players last 90 and the most recent data available:
    • VelocityData3$DaysSince90 <- difftime(VelocityData3$Date, VelocityData3$Dateof90, units=c("days"))
    • The difftime function looks at the difference between the 2 dates and units=("days") is returning an answer as the number of the days
    • NOTE: You may need to format both the date and dateof90 column as a date for the difftime formula:
      • VelocityData3$Dateof90 <- as.Date(as.character(VelocityData3$Dateof90))
        VelocityData3$Date <- as.Date(as.character(VelocityData3$Date))


Now can start apply some colour coding through the DT package.

First we must format our data as a data table:

  • Velocitytable <- setDT(VelocityData3)

The we can apply some formatting to our datatable

  • datatable(Velocitytable) %>%
    formatStyle('DaysSince90', backgroundColor = styleInterval(c(7,14), c('green', 'yellow', 'red')))

    • To note: within formatstyle we are specifying the DaysSince90 columns and although only 2 numbers referenced, the style interval is looking at the intervals as “min value-7, 8-14, 15-max value ” and then applying the colours to those ranges
Datatable output

That’s it for today, next we will go through some of the further options available to us through the DT package about how we can shape a datatable.

Today’s code

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.