---
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"))
```