2
在我的代碼的最後一行,我得到一個錯誤,說沒有足夠的內存。任何幫助,將不勝感激!我試圖找到所有組合你可以裝配一個由9名隊員組成的隊伍,其中2個選自1到4組,1個選自組5.在找到所有組合後,我想找到低於給定工資門檻的所有組合。沒有足夠的內存/代碼運行緩慢
pg.number= 1:10
sg.number= 11:20
sf.number= 21:30
pf.number=31:40
c.number=41:50
pg.combos= combn(pg.number, 2)
sg.combos= combn(sg.number,2)
sf.combos= combn(sf.number, 2)
pf.combos= combn(pf.number, 2)
c.combos= combn(c.number, 1)
replicate.vec= function(vector,matrix.1) {
empty.matrix<- matrix(vector, nrow=length(vector), ncol= ncol(matrix.1))
rbind(matrix.1, empty.matrix)
}
list<- as.list(numeric(ncol(sg.combos)))
for (i in 1:ncol(sg.combos)) {
list[[i]]=replicate.vec(sg.combos[,i],pg.combos)
}
pg.and.sg<-as.matrix(do.call(cbind,list))
list<- as.list(numeric(ncol(sf.combos)))
for (i in 1:ncol(sf.combos)) {
list[[i]]=replicate.vec(sf.combos[,i],pg.and.sg)
}
pg.sg.sf<-as.matrix(do.call(cbind,list))
list<- as.list(numeric(ncol(pf.combos)))
for (i in 1:ncol(pf.combos)) {
list[[i]]=replicate.vec(pf.combos[,i],pg.sg.sf)
}
pg.sg.sf.pf<-as.matrix(do.call(cbind,list))
list<- as.list(numeric(ncol(c.combos)))
for (i in 1:ncol(c.combos)) {
list[[i]]=replicate.vec(c.combos[,i],pg.sg.sf.pf)
}
all.lineups<-as.matrix(do.call(cbind,list))
all.lineups
c1<- 1:50
c2<- rnorm(50)
c3<- rnorm(50, mean=100)
c4<- rnorm(50)
df<- data.frame(cbind(c1,c2,c3,c4))
get.fantasy.salary<- function(vector) {
sum(df[vector,3])
}
get.fantasy.points<- function(vector) {
sum(df[vector,4])
}
sum.salary<-apply(all.lineups,2, get.fantasy.salary)
爲什麼你不把每個組的薪水最低的球員? –
@marat我對我的文章進行了編輯。我想找到低於給定工資門檻的所有組合。 – Zslice
也許一些聰明的數學比聰明的編程更有幫助。你有沒有考慮MathOverflow的某種最佳算法? – nacnudus