在我的代码的最后一行,我得到一个错误,说没有足够的内存。任何帮助,将不胜感激!我试图找到所有组合,你可以组建一个由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)
答案 0 :(得分:0)
apply(,2)
很慢。相反,您可以使用
salary.lineups <- matrix(df[all.lineups,3],nrow=9)
colSums(salary.lineups)