Я сейчас работаю над так называемой проблемой "Moneyball". Я в основном пытаюсь выбрать лучшую комбинацию из трех игроков в бейсбол (на основе определенной статистики, относящейся к бейсболу) за наименьшую сумму денег.
У меня есть следующий набор данных (OBP, SLG и AB - статистика, которая описывает производительность игрока):
# the table has about 100 observations;
# the data frame is called "batting.2001"
playerID OBP SLG AB salary
giambja01 0.3569001 0.6096154 20 410333
heltoto01 0.4316547 0.4948382 57 4950000
berkmla01 0.2102326 0.6204506 277 305000
gonzalu01 0.4285714 0.3880131 409 9200000
martied01 0.4234079 0.5425532 100 5500000
Моя цель состоит в том, чтобы выбрать трех игроков, которые в комбинации имеют максимально возможную сумму OBP, SLG и AB, но в то же время не превышают общую зарплату в 15.000.000 долларов.
Мой подход до сих пор был довольно простым ... Я просто попытался расположить (в порядке убывания) столбцы OBP, SLG и AB и просто выбрать трех игроков сверху, которые в комбинации не превышают ограничение по зарплате 15 миллионов долларов:
batting.2001 %>%
arrange(desc(OPB), desc(SLG), desc(AB))
Кто-нибудь из вас может подумать о лучшем решении? Кроме того, что если я хотел бы получить лучшую комбинацию из трех игроков за наименьшее количество денег? Какой подход вы бы использовали в этом сценарии?
Заранее спасибо и с нетерпением ждем ваших решений.