# Player data
player_names <- 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)
# Created a data frame for easier manipulation using Player's OBP, SLG, and Salary
players_df <- data.frame(Player = player_names, OBP = obp, SLG = slg, Salary = salary)
find_best_combo <- function(data, budget = 10500000) {
n <- nrow(data)
best_score <- -Inf
best_pair <- NULL
for (i in 1:(n - 1)) {
for (j in (i + 1):n) {
total_salary <- data$Salary[i] + data$Salary[j]
if (total_salary <= budget) {
total_obp <- data$OBP[i] + data$OBP[j]
total_slg <- data$SLG[i] + data$SLG[j]
performance <- total_obp + total_slg
if (performance > best_score) {
best_score <- performance
best_pair <- list(
Player1 = data$Player[i],
Player2 = data$Player[j],
Total_OBP = total_obp,
Total_SLG = total_slg,
Total_Salary = total_salary,
Total_Performance = performance
)
}
}
}
}
return(best_pair)
}
find_best_combo(players_df)
$Player1
[1] "Yandy Diaz"
$Player2
[1] "Ryan Noda"
$Total_OBP
[1] 0.787
$Total_SLG
[1] 0.911
$Total_Salary
[1] 8720000
$Total_Performance
[1] 1.698
Based on the team budget and player’s key statistics, the
best combo players are Yandy Diaz and Ryan Noda.
LS0tCnRpdGxlOiAiQ2hvb3NpbmcgYW1vbmcgRGlmZmVyZW50IE1MQiBQbGF5ZXJzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpgYGB7cn0KIyBQbGF5ZXIgZGF0YQpwbGF5ZXJfbmFtZXMgPC0gYygiWWFuZHkgRGlheiIsICJKb2V5IE1lbmVzZXMiLCAiSm9zZSBBYnJldSIsICJSeWFuIE5vZGEiLCAiTmF0ZSBMb3dlIikKb2JwIDwtIGMoMC40MDMsIDAuMzIwLCAwLjI5MiwgMC4zODQsIDAuMzY1KQpzbGcgPC0gYygwLjUxMSwgMC4zNjYsIDAuMzU4LCAwLjQwMCwgMC40MjYpCnNhbGFyeSA8LSBjKDgwMDAwMDAsIDcyMzYwMCwgMTk1MDAwMDAsIDcyMDAwMCwgNDA1MDAwMCkgIApgYGAKCmBgYHtyfQojIENyZWF0ZWQgYSBkYXRhIGZyYW1lIGZvciBlYXNpZXIgbWFuaXB1bGF0aW9uIHVzaW5nIFBsYXllcidzIE9CUCwgU0xHLCBhbmQgU2FsYXJ5CnBsYXllcnNfZGYgPC0gZGF0YS5mcmFtZShQbGF5ZXIgPSBwbGF5ZXJfbmFtZXMsIE9CUCA9IG9icCwgU0xHID0gc2xnLCBTYWxhcnkgPSBzYWxhcnkpCmBgYAoKYGBge3J9CmZpbmRfYmVzdF9jb21ibyA8LSBmdW5jdGlvbihkYXRhLCBidWRnZXQgPSAxMDUwMDAwMCkgewogIG4gPC0gbnJvdyhkYXRhKQogIGJlc3Rfc2NvcmUgPC0gLUluZgogIGJlc3RfcGFpciA8LSBOVUxMCiAgZm9yIChpIGluIDE6KG4gLSAxKSkgewogICAgZm9yIChqIGluIChpICsgMSk6bikgewogICAgICB0b3RhbF9zYWxhcnkgPC0gZGF0YSRTYWxhcnlbaV0gKyBkYXRhJFNhbGFyeVtqXQogICAgICAKICAgICAgaWYgKHRvdGFsX3NhbGFyeSA8PSBidWRnZXQpIHsKICAgICAgICB0b3RhbF9vYnAgPC0gZGF0YSRPQlBbaV0gKyBkYXRhJE9CUFtqXQogICAgICAgIHRvdGFsX3NsZyA8LSBkYXRhJFNMR1tpXSArIGRhdGEkU0xHW2pdCiAgICAgICAgcGVyZm9ybWFuY2UgPC0gdG90YWxfb2JwICsgdG90YWxfc2xnCiAgICAgICAgCiAgICAgICAgaWYgKHBlcmZvcm1hbmNlID4gYmVzdF9zY29yZSkgewogICAgICAgICAgYmVzdF9zY29yZSA8LSBwZXJmb3JtYW5jZQogICAgICAgICAgYmVzdF9wYWlyIDwtIGxpc3QoCiAgICAgICAgICAgIFBsYXllcjEgPSBkYXRhJFBsYXllcltpXSwKICAgICAgICAgICAgUGxheWVyMiA9IGRhdGEkUGxheWVyW2pdLAogICAgICAgICAgICBUb3RhbF9PQlAgPSB0b3RhbF9vYnAsCiAgICAgICAgICAgIFRvdGFsX1NMRyA9IHRvdGFsX3NsZywKICAgICAgICAgICAgVG90YWxfU2FsYXJ5ID0gdG90YWxfc2FsYXJ5LAogICAgICAgICAgICBUb3RhbF9QZXJmb3JtYW5jZSA9IHBlcmZvcm1hbmNlCiAgICAgICAgICApCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQogICAgICAgICAgICAKICByZXR1cm4oYmVzdF9wYWlyKQp9CmBgYAoKCmBgYHtyfQpmaW5kX2Jlc3RfY29tYm8ocGxheWVyc19kZikKYGBgCgoqKkJhc2VkIG9uIHRoZSB0ZWFtIGJ1ZGdldCBhbmQgcGxheWVyJ3Mga2V5IHN0YXRpc3RpY3MsIHRoZSBiZXN0IGNvbWJvIHBsYXllcnMgYXJlIFlhbmR5IERpYXogYW5kIFJ5YW4gTm9kYS4qKgoKCgoK