library(magrittr)
p.combination = character(1000)
for(i in 1:length(p.combination)){
p.combination[i] = LETTERS[sample(1:26,5)] %>% paste0(collapse = ", ")
}
p.com.allowed = character(1000)
for(i in 1:length(p.com.allowed)){
p.com.allowed[i] = LETTERS[sample(1:26,5)] %>% paste0(collapse = ", ")
}
data = data.frame(p.combination = p.combination,
p.com.allowed = p.com.allowed)
player = LETTERS[1:26]
input.matrix0 = function(data, player, off){
X = matrix(ncol = length(player), nrow = dim(data)[1])
for(i in 1:dim(data)[1]){
if(off) {
colnames(X) = paste0("O_",player)
coding = 1
pp = data$p.combination
} else {
colnames(X) = paste0("D_",player)
coding = -1
pp = data$p.com.allowed
}
player.temp = pp[i] %>% gsub(", ", "|",.)
index = grep(player.temp, player)
X[i,index] = coding
X[i,-index] = 0
}
return(X)
}
input.matrix = function(data, player){
X.off = input.matrix0(data, player, T)
X.def = input.matrix0(data, player, F)
return(cbind(X.off, X.def))
}
out = input.matrix(data,player)
bGlicmFyeShtYWdyaXR0cikKCnAuY29tYmluYXRpb24gPSBjaGFyYWN0ZXIoMTAwMCkKZm9yKGkgaW4gMTpsZW5ndGgocC5jb21iaW5hdGlvbikpewogIHAuY29tYmluYXRpb25baV0gPSBMRVRURVJTW3NhbXBsZSgxOjI2LDUpXSAlPiUgcGFzdGUwKGNvbGxhcHNlID0gIiwgIikKfQoKcC5jb20uYWxsb3dlZCA9IGNoYXJhY3RlcigxMDAwKQpmb3IoaSBpbiAxOmxlbmd0aChwLmNvbS5hbGxvd2VkKSl7CiAgcC5jb20uYWxsb3dlZFtpXSA9IExFVFRFUlNbc2FtcGxlKDE6MjYsNSldICU+JSBwYXN0ZTAoY29sbGFwc2UgPSAiLCAiKQp9CgpkYXRhID0gZGF0YS5mcmFtZShwLmNvbWJpbmF0aW9uID0gcC5jb21iaW5hdGlvbiwgCiAgICAgICAgICAgICAgICAgIHAuY29tLmFsbG93ZWQgPSBwLmNvbS5hbGxvd2VkKQpwbGF5ZXIgPSBMRVRURVJTWzE6MjZdCgoKCmlucHV0Lm1hdHJpeDAgPSBmdW5jdGlvbihkYXRhLCBwbGF5ZXIsIG9mZil7CiAgWCA9IG1hdHJpeChuY29sID0gbGVuZ3RoKHBsYXllciksIG5yb3cgPSBkaW0oZGF0YSlbMV0pCiAgZm9yKGkgaW4gMTpkaW0oZGF0YSlbMV0pewogICAgaWYob2ZmKSB7CiAgICAgIGNvbG5hbWVzKFgpID0gcGFzdGUwKCJPXyIscGxheWVyKQogICAgICBjb2RpbmcgPSAxCiAgICAgIHBwID0gZGF0YSRwLmNvbWJpbmF0aW9uCiAgICB9IGVsc2UgewogICAgICBjb2xuYW1lcyhYKSA9IHBhc3RlMCgiRF8iLHBsYXllcikKICAgICAgY29kaW5nID0gLTEKICAgICAgcHAgPSBkYXRhJHAuY29tLmFsbG93ZWQKICAgIH0KICAgIHBsYXllci50ZW1wID0gcHBbaV0gJT4lIGdzdWIoIiwgIiwgInwiLC4pCiAgICBpbmRleCA9IGdyZXAocGxheWVyLnRlbXAsIHBsYXllcikKICAgIFhbaSxpbmRleF0gPSBjb2RpbmcKICAgIFhbaSwtaW5kZXhdID0gMAogIH0KICByZXR1cm4oWCkKfQoKaW5wdXQubWF0cml4ID0gZnVuY3Rpb24oZGF0YSwgcGxheWVyKXsKICBYLm9mZiA9IGlucHV0Lm1hdHJpeDAoZGF0YSwgcGxheWVyLCBUKQogIFguZGVmID0gaW5wdXQubWF0cml4MChkYXRhLCBwbGF5ZXIsIEYpCiAgcmV0dXJuKGNiaW5kKFgub2ZmLCBYLmRlZikpCn0KCgoKCm91dCA9IGlucHV0Lm1hdHJpeChkYXRhLHBsYXllcik=