使用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