Objective

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