Using the provided OBP, SLG, and Salary data for each player, select two players whose combined salaries do not exceed $10,500,000 and who maximize predicted runs using the given regression model:
\[ \text{Runs} = -804.6 + 2737.8 \times OBP + 1584.9 \times SLG \]
# Player data
players <- data.frame(
Player = c("Yandy Diaz", "Joey Meneses", "Jose Abreu", "Ryan Noda", "Nate Lowe"),
OBP = c(0.403, 0.320, 0.292, 0.384, 0.365),
SLG = c(0.511, 0.366, 0.358, 0.400, 0.426),
Salary = c(8000000, 723600, 19500000, 720000, 4050000)
)
# Calculate predicted runs
players$PredictedRuns <- -804.6 + (2737.8 * players$OBP) + (1584.9 * players$SLG)
# Show player table with predicted runs
players
## Player OBP SLG Salary PredictedRuns
## 1 Yandy Diaz 0.403 0.511 8000000 1108.6173
## 2 Joey Meneses 0.320 0.366 723600 651.5694
## 3 Jose Abreu 0.292 0.358 19500000 562.2318
## 4 Ryan Noda 0.384 0.400 720000 880.6752
## 5 Nate Lowe 0.365 0.426 4050000 869.8644
# Select the best pair under budget
# Manually checking valid pairs
valid_pairs <- list(
c("Yandy Diaz", "Joey Meneses"),
c("Yandy Diaz", "Ryan Noda"),
c("Yandy Diaz", "Nate Lowe"),
c("Joey Meneses", "Ryan Noda"),
c("Joey Meneses", "Nate Lowe"),
c("Ryan Noda", "Nate Lowe")
)
# Evaluate each pair
results <- data.frame(Player1 = character(), Player2 = character(), TotalSalary = numeric(), TotalRuns = numeric())
for (pair in valid_pairs) {
p1 <- pair[1]
p2 <- pair[2]
salary <- sum(players$Salary[players$Player %in% pair])
if (salary <= 10500000) {
runs <- sum(players$PredictedRuns[players$Player %in% pair])
results <- rbind(results, data.frame(Player1 = p1, Player2 = p2, TotalSalary = salary, TotalRuns = runs))
}
}
# Best combination
results[which.max(results$TotalRuns), ]
## Player1 Player2 TotalSalary TotalRuns
## 2 Yandy Diaz Ryan Noda 8720000 1989.293