File size: 2,513 Bytes
dea76b9
 
 
 
04aa819
 
 
 
db3f56f
 
1dd1e33
db3f56f
 
04aa819
 
 
db3f56f
 
1dd1e33
db3f56f
 
 
68e9a06
db3f56f
dea76b9
db3f56f
dea76b9
 
db3f56f
dea76b9
04aa819
db3f56f
04aa819
 
 
db3f56f
04aa819
68e9a06
 
 
 
 
 
 
 
 
d64c0d2
 
68e9a06
 
 
04aa819
dea76b9
db3f56f
 
 
 
 
 
 
68e9a06
 
 
 
 
 
dea76b9
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

library(tidyverse)

base_path = "C:/Users/rober/Documents/Github/sabr3evaluation/data/"
base_files = grep("20[0-9]*.csv", list.files(base_path), value=T)
files = list()
for(i in 1:length(base_files))
{
  files[[i]] <- read_csv(paste0(base_path, base_files[i])) %>%
    filter(PA>99) %>%
    filter(!Tm=="TOT") %>%
    group_by(`Name-additional`) %>%
    summarize(PAtot=sum(PA), OPS=weighted.mean(OPS, PA), Age=unique(Age))
  files[[i]]$year <- 2016+i
}

a <- do.call(rbind.data.frame, files)
marc_pred = a %>% filter(year==2020)
r21 <- a %>% filter(year==2021)
r19 <- a %>% filter(year==2019)
r18 <- a %>% filter(year==2018)
r17 <- a %>% filter(year==2017)

colnames(marc_pred) <- c("bbref_id", "PA1", "OPSY1", "Age", "Year")
marc_pred$OPSY2 <- r19[match(marc_pred$bbref_id, r19$`Name-additional`),]$OPS
marc_pred$PA2 <- r19[match(marc_pred$bbref_id, r19$`Name-additional`),]$PAtot

marc_pred$OPSY3 <- r18[match(marc_pred$bbref_id, r18$`Name-additional`),]$OPS
marc_pred$PA3 <- r18[match(marc_pred$bbref_id, r18$`Name-additional`),]$PAtot

marc_pred$OPSY4 <- r17[match(marc_pred$bbref_id, r17$`Name-additional`),]$OPS
marc_pred$PA4 <- r17[match(marc_pred$bbref_id, r17$`Name-additional`),]$PAtot


final_pred <- marc_pred %>% 
  select(bbref_id, Age, PA1, PA2, PA3, PA4, OPSY1, OPSY2,
                     OPSY3, OPSY4) %>% filter(PA1>99&PA2>99&PA3>99&PA4>99)

final_pred$weighted_avg <- ((final_pred$OPSY1*5)+(final_pred$OPSY2*4)+(final_pred$OPSY3*3))/12
final_pred$reliability <- (final_pred$PA1+final_pred$PA2+final_pred$PA3)/
  (final_pred$PA1+final_pred$PA2+final_pred$PA3+1200)
#Regressed rate = (Player reliability * Player Rate) + 
#((1 – Player reliability) * .720)
final_pred$regressed_ops <- (final_pred$reliability*final_pred$weighted_avg) +
  ((1-final_pred$reliability) * .720)
final_pred$age_adjusted_ops <- final_pred$regressed_ops * (1+ifelse(final_pred$Age>29,
                                      (final_pred$Age - 29) * -.003,
                                      (final_pred$Age - 29) * .006))
final_pred$ops_pred <- final_pred$age_adjusted_ops
final_pred$ops_real <- r21[match(final_pred$bbref_id, r21$`Name-additional`),]$OPS
  
write_csv(final_pred, "C:/Users/rober/Documents/Github/sabr3evaluation/data/MarcelData_wproj.csv")


data_for_release <- final_pred %>%
  select(-weighted_avg, -age_adjusted_ops, -reliability, 
         -ops_pred, -ops_real)
write_csv(final_pred, 
          "C:/Users/rober/Documents/Github/sabr3evaluation/data/SABR3_FinalAssignment_data.csv")

#