Spaces:
Sleeping
Sleeping
Update app.R
Browse files
app.R
CHANGED
|
@@ -3,7 +3,21 @@ library(dplyr)
|
|
| 3 |
library(arrow)
|
| 4 |
library(DT)
|
| 5 |
|
| 6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
mutate(
|
| 8 |
IsStrike = PitchCall %in% c("StrikeCalled","StrikeSwinging","FoulBall",
|
| 9 |
"FoulBallNotFieldable","FoulTip","InPlay"),
|
|
@@ -83,7 +97,7 @@ df %>%
|
|
| 83 |
arrange(desc(Pitches))
|
| 84 |
}
|
| 85 |
|
| 86 |
-
#
|
| 87 |
ui <- fluidPage(
|
| 88 |
tags$head(
|
| 89 |
tags$style(HTML("
|
|
|
|
| 3 |
library(arrow)
|
| 4 |
library(DT)
|
| 5 |
|
| 6 |
+
# ββ Load data ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 7 |
+
load_data <- function(level) {
|
| 8 |
+
path <- paste0("/app/", gsub("[^A-Za-z0-9]","_",level), ".parquet")
|
| 9 |
+
arrow::read_parquet(path)
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
# ββ Pitcher stats ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 13 |
+
build_pitcher_stats <- function(df, min_pitches) {
|
| 14 |
+
|
| 15 |
+
format_name <- function(name) {
|
| 16 |
+
parts <- strsplit(name, ", ")[[1]]
|
| 17 |
+
if (length(parts) == 2) paste(trimws(parts[2]), trimws(parts[1])) else name
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
df %>%
|
| 21 |
mutate(
|
| 22 |
IsStrike = PitchCall %in% c("StrikeCalled","StrikeSwinging","FoulBall",
|
| 23 |
"FoulBallNotFieldable","FoulTip","InPlay"),
|
|
|
|
| 97 |
arrange(desc(Pitches))
|
| 98 |
}
|
| 99 |
|
| 100 |
+
## UI ##
|
| 101 |
ui <- fluidPage(
|
| 102 |
tags$head(
|
| 103 |
tags$style(HTML("
|