DT package

library(DT)
DT::datatable(gps_data, class = 'cell-border stripe', rownames = F, filter='top',
              editable = TRUE, extensions = 'Buttons', options = list(
    dom = 'Bfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
  )) 

Kable/kableExtra package

library(kableExtra)
library(knitr)

pos_groups <- gps_data %>%
    filter(Date == '2018-02-06')

pos_groups <- table(pos_groups$`Forward/Back`)

gps_data %>% 
  filter(Date == '2018-02-06') %>%
  select(-`Forward/Back`) %>%
  mutate(dist_total =  round(dist_total, 0), msr_total = round(msr_total, 0),
         hsr_total = round(hsr_total, 0),percentVmax = round(percentVmax, 2)) %>%
  mutate(dist_total = cell_spec(dist_total, "html", 
                           color = ifelse(dist_total > 4000, "red", "blue")),
    msr_total = ifelse(msr_total > 1000,
                       cell_spec(msr_total, "html", color = "red", bold = T),
                       ifelse(msr_total < 400,
                              cell_spec(msr_total,"html", color = "blue", bold = T),
                              cell_spec(msr_total, "html", color = "green", italic = T))),
    percentVmax = cell_spec(percentVmax, bold = T, color = spec_color(percentVmax, end = 0.9),
              font_size = spec_font_size(percentVmax))) %>%
  kable(escape=FALSE, caption = 'Session Loads', align = c('l','l', 'l', 'l', 'l', 'c', 'c', 'c','c')) %>%
  kable_styling( bootstrap_options = c('striped', 'hover', 'responsive', 
                                       'condensed')) %>%
  column_spec(1, width = '5cm', border_right = TRUE, bold = TRUE, background = "grey") %>%
      pack_rows(index = setNames(pos_groups, names(pos_groups)),
               label_row_css = "background-color: #666; color: #fff;")
Session Loads
Date week Position Specific Name dist_total msr_total hsr_total percentVmax
Backs
2018-02-06 Wk 32 Scrum Half 04fa3 4834 1248 219 0.91
2018-02-06 Wk 32 Tighthead Prop 1202a 2661 297 16 0.77
2018-02-06 Wk 32 Wing 153b3 4879 1156 116 0.81
2018-02-06 Wk 32 Hooker 1ec23 2673 294 43 0.89
2018-02-06 Wk 32 Full Back 27e4e 4659 1014 108 0.87
2018-02-06 Wk 32 Back Row 405f7 2795 309 50 0.82
2018-02-06 Wk 32 Wing 40ec0 4610 846 115 0.86
2018-02-06 Wk 32 Full Back 44609 4656 1003 159 0.8
2018-02-06 Wk 32 Wing 45107 4160 683 60 0.78
2018-02-06 Wk 32 Loosehead Prop 4bf62 2509 363 0 0.69
2018-02-06 Wk 32 Back Row 604b2 2725 340 0 0.66
2018-02-06 Wk 32 Second Row 6d345 2592 316 0 0.69
Forwards
2018-02-06 Wk 32 Scrum Half 7590e 4205 745 43 0.77
2018-02-06 Wk 32 Fly Half 81c99 4551 1037 81 0.8
2018-02-06 Wk 32 Back Row a9898 2962 522 81 0.87
2018-02-06 Wk 32 Back Row a9d9f 2970 395 31 0.77
2018-02-06 Wk 32 Tighthead Prop b0dae 2743 464 0 0.66
2018-02-06 Wk 32 Fly Half b4def 4314 771 56 0.82
2018-02-06 Wk 32 Scrum Half d21d2 4573 1134 65 0.8
2018-02-06 Wk 32 Wing d2367 2424 332 45 0.84
2018-02-06 Wk 32 Back Row d28b1 3108 1150 368 0.83
2018-02-06 Wk 32 Second Row d49ef 2393 327 2 0.71
2018-02-06 Wk 32 Tighthead Prop e01bb 1986 237 0 0.68
2018-02-06 Wk 32 Fly Half efcaa 4444 975 26 0.77
2018-02-06 Wk 32 Loosehead Prop f1a1c 2672 331 0 0.64
2018-02-06 Wk 32 Back Row f8b4b 2571 247 0 0.67

kableExtra and formatTable together

library(formattable)
gps_data %>% 
  filter(Date == '2018-02-06') %>%
  mutate(dist_total =  round(dist_total, 0), msr_total = round(msr_total, 0),
         hsr_total = round(hsr_total, 0),percentVmax = round(percentVmax, 2)) %>%
  mutate(hsr_total = ifelse(hsr_total > 150,
                            cell_spec(hsr_total, "html", color = "red", bold = T),
                            ifelse(hsr_total < 50,
                                   cell_spec(hsr_total,"html", color = "blue", bold = T),
                                   cell_spec(hsr_total, "html", color = "green", italic = T))),
         percentVmax = cell_spec(percentVmax, bold = T, color = spec_color(percentVmax, end = 0.9),
                                 font_size = spec_font_size(percentVmax)),
         `dist_total` = color_bar("#FA614B")(dist_total),
         msr_total = color_tile("#DeF7E9", "#71CA97")(msr_total)) %>%
  kable('html',  caption = 'Session Loads', escape=FALSE, 
        align = c(rep('l', 5), rep('c', 4)), 
        col.names = c('Date', 'Week', 'Fwd/Bck', 'Position', 'Name', 'Total Distance',
                      'Mod Speed Dist', 'High Speed Dist', 'Percent Max Vel')) %>%
  kable_styling( bootstrap_options = c('striped', 'hover', 'responsive', 'condensed')) %>%
  pack_rows(index = setNames(pos_groups, names(pos_groups)),
            label_row_css = "background-color: #666; color: #fff;")
Session Loads
Date Week Fwd/Bck Position Name Total Distance Mod Speed Dist High Speed Dist Percent Max Vel
Backs
2018-02-06 Wk 32 Backs Scrum Half 04fa3 4834 1248 219 0.91
2018-02-06 Wk 32 Forwards Tighthead Prop 1202a 2661 297 16 0.77
2018-02-06 Wk 32 Backs Wing 153b3 4879 1156 116 0.81
2018-02-06 Wk 32 Forwards Hooker 1ec23 2673 294 43 0.89
2018-02-06 Wk 32 Backs Full Back 27e4e 4659 1014 108 0.87
2018-02-06 Wk 32 Forwards Back Row 405f7 2795 309 50 0.82
2018-02-06 Wk 32 Backs Wing 40ec0 4610 846 115 0.86
2018-02-06 Wk 32 Backs Full Back 44609 4656 1003 159 0.8
2018-02-06 Wk 32 Backs Wing 45107 4160 683 60 0.78
2018-02-06 Wk 32 Forwards Loosehead Prop 4bf62 2509 363 0 0.69
2018-02-06 Wk 32 Forwards Back Row 604b2 2725 340 0 0.66
2018-02-06 Wk 32 Forwards Second Row 6d345 2592 316 0 0.69
Forwards
2018-02-06 Wk 32 Backs Scrum Half 7590e 4205 745 43 0.77
2018-02-06 Wk 32 Backs Fly Half 81c99 4551 1037 81 0.8
2018-02-06 Wk 32 Forwards Back Row a9898 2962 522 81 0.87
2018-02-06 Wk 32 Forwards Back Row a9d9f 2970 395 31 0.77
2018-02-06 Wk 32 Forwards Tighthead Prop b0dae 2743 464 0 0.66
2018-02-06 Wk 32 Backs Fly Half b4def 4314 771 56 0.82
2018-02-06 Wk 32 Backs Scrum Half d21d2 4573 1134 65 0.8
2018-02-06 Wk 32 Backs Wing d2367 2424 332 45 0.84
2018-02-06 Wk 32 Forwards Back Row d28b1 3108 1150 368 0.83
2018-02-06 Wk 32 Forwards Second Row d49ef 2393 327 2 0.71
2018-02-06 Wk 32 Forwards Tighthead Prop e01bb 1986 237 0 0.68
2018-02-06 Wk 32 Backs Fly Half efcaa 4444 975 26 0.77
2018-02-06 Wk 32 Forwards Loosehead Prop f1a1c 2672 331 0 0.64
2018-02-06 Wk 32 Forwards Back Row f8b4b 2571 247 0 0.67