エクセルを長年使用した後に足をRに浸して質問があります。私は、Rがいかに速いかに徹底的に感銘を受け、Excelを1時間かけて1万回、Rを25,000回、同じシムを4分で実行しました。驚くばかり。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)
である私が使用しているデータへのリンクです。 0.01 -
https://www.dropbox.com/s/d5m8jjnq32f0cpe/Week6NFLProjections.csv?dl=0
は、私は、ループのコードは、前のスコアに=目標を設定することにより、複数のラインナップを作成することができる点にもよ。副次的なことに、このプロセスは継続的に進行しているので(たとえばラインナップ#50)、これは正常であり、これをループするより効率的な方法はありますか?
私の本当の疑問は、もっと広範な制約をどうやって追加するのかということです。ファンタジーフットボールでは、同じチームの選手を「ペアにする」ことが有用であり、どのようにして制約に入れるのか分かりません。
単純なペアリングの例では、私の「最適なラインナップ」が同じチームのDとKを持つように、どのように制約を追加できますか?私は実際にCSVファイルでD + Kを組み合わせるだけでこの問題を回避することができましたが、Rにどのようにコード化するのかに興味があります。
さらに複雑なペアリングのシナリオは、 (3)WR /(1)TEの1つが同じチームにいること。
もう1つは、攻撃側プレイヤーが自分自身の防御と対戦していないことを確認することです。
ご協力いただければ幸いです。これに対する答えはどこにも見つからないようです。
チームiのベクトルを作成できると思っています。電子 'code'チーム< - MYDATA $チームは' をcode'しかし、どのように私は確かに私の選択D = K – NxtWrldChamp