使用excel多年后我的脚陷入了R,并且有一个问题。 R的速度让我印象深刻,过去一个多小时的Excel使用Excel进行10,000次模拟,R在4分钟内做了25,000次相同的模拟。真棒。RGLPK库中的条件约束R
这是幻想足球相关,因为我试图在R中创建一个阵容优化器,并发现RGLPK库是一个不错的选择。还有其他许多问题可以帮助我达到我今天的位置,但是我遇到了一个障碍。以下是其他一些主题。
Fantasy football linear programming in R with RGLPK
Rglpk - Fantasy Football Lineup Optimiser - Rbind of For Loop Output
Rglpk - Fantasy Football Lineup Optimiser - Forcing the Inclusion of a Player
这里是我的股票优化
#stock optimal linups solver
name <- myData$Name
pos <- myData$Pos
pts <- myData$Projection
cost <- myData$Salary
team <- myData$Team
opp <- myData$Opp
num.players <- length(name)
f <- pts
var.types <- rep("B", num.players)
A <- rbind(as.numeric(pos=="QB")
, as.numeric(pos=="RB")
, as.numeric(pos=="WR")
, as.numeric(pos=="TE")
, as.numeric(pos=="K")
, as.numeric(pos=="D")
,cost)
dir <- c("=="
,"=="
,"=="
,"=="
,"=="
,"=="
,"<=")
b <- c(1
, 2
, 3
, 1
, 1
, 1
, 60000)
library(Rglpk)
sol <- Rglpk_solve_LP(obj = f
, mat = A
, dir = dir
, rhs = b
, types = var.types
, max=TRUE)
myData[sol$solution == 1,]
sprintf('Cost is:$%i', sum(cost[sol$solution > 0]))
sprintf('Projected Points is: %f', sol$optimum)
下面是我使用的数据的链接。
https://www.dropbox.com/s/d5m8jjnq32f0cpe/Week6NFLProjections.csv?dl=0
我也是到了这种地步,我可以循环的代码通过设定目标=到以前的分数创建多个阵容 - .05。作为一个侧面说明,这个过程会持续下去(比如#50),这是否正常,是否有更有效的方式来循环呢?
我真正的问题是如何添加一些更广泛的约束。在幻想足球中,将来自同一个球队的球员“配对”在一起非常有用,而且我无法弄清楚我会如何将这些问题纳入限制。
对于一个简单的配对示例,我该如何添加一个约束,以便我的“最优阵容”将来自同一个团队的D和K?我实际上已经能够通过将CSV文件中的D + K结合起来解决这个问题,但我对如何将代码编入R有兴趣。
更复杂的配对方案是将我的QB和(3)WR /(1)TE中的1个在同一个团队中。
另一个问题是要确保没有任何进攻球员与我自己的防守相比。
任何帮助将不胜感激。似乎无法在任何地方找到答案。
我在想我可以为团队创建一个载体。e 'code' teams < - myData $ Team' code' 但是我怎样才能使用它来确保我选择的D =选中K – NxtWrldChamp