Column

Table

Column

Plot

---
title: "NBA Combine Crosstalk"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    theme: spacelab
    source_code: embed
---

```{r include=FALSE}

knitr::opts_chunk$set(
	message = FALSE,
	warning = FALSE
)

library(flexdashboard)
library(DT)
library(tidyverse)
library(crosstalk)
library(plotly)

```


```{r include=FALSE}

data <- read.csv("https://www.dropbox.com/s/pqzdphj9s3rpc1n/full_data.csv?dl=1")

draft <- data %>% select(Player, Team, Year, Overall_Pick)

normal_data <- data %>%
  select(Player, Year, Primary_Position, Assessment, Results, Units) %>%
  filter(!is.na(Results)) %>%
  group_by(Primary_Position, Assessment) %>%
  mutate(Normalized = (Results - min(Results)) / (max(Results) - min(Results))) %>%
  mutate(Normalized = round(Normalized,2)) %>%
  mutate(Normalized = ifelse(Assessment %in% c("lane agility drill", "reactive shuttle run", "sprint"), 1 - Normalized, Normalized)) %>%
  select(-Units) %>%
  na.omit() 

#clean data
full_dt <- normal_data %>%
  full_join(draft) %>% distinct() %>%
  select(Player, Team, Year, Overall_Pick, everything()) %>%
  arrange(Normalized)
  
#new dt for crosstalk
shared_data <- SharedData$new(full_dt)
```

Inputs {.sidebar data-width=250}
-----------------------------------------------

```{r}
filter_select("Assessment", "Select Assessment", shared_data, ~Assessment, multiple = FALSE)
filter_select("Primary_Position", "Select Position", shared_data, ~Primary_Position, multiple = FALSE)
filter_slider("Overall_Pick", "Pick Selection", shared_data, ~Overall_Pick)
filter_slider("Year", "Select Year", shared_data, ~Year, round = TRUE, ticks = FALSE)
```

Column {data-width=700}
---------------------------------------------

### Table

```{r}

  datatable(shared_data,
            
            #start options
          options = list(
          order = c(2, "desc"),
          dom = "ltp",
          pageLength = 50, 
          lengthMenu = c(15, 30, 45, 60, 100),
          columnDefs = list(
              list(width = '300px', targets = c("Player", "Assessment", "Team"))
          )),
          
          colnames = c("Position" = "Primary_Position"),
          filter = "top",
          rownames = FALSE)

```

Column {data-width=300}
---------------------------------------------

### Plot

```{r}

plot_ly(shared_data, y = ~Player, x = ~Normalized, type = 'bar', color = I("steelblue3"), orientation = 'h') %>%
       layout(yaxis = list(categoryorder = "trace"))

```