r - Nonempty Numeric vector? -
so run loop: (my data file big, .csv)
for (i in 1:365){ race.date<-as.date(meeting_date,"%d/%m/%y") indicator1<-race.date<=as.date("31/12/2007","%d/%m/%y")+i model.data<-horse.data[indicator1==true,] indicator2<-race.date==as.date("31/12/2007","%d/%m/%y")+i+1 test.data<-horse.data[indicator2==true,] ############################## include.data<-ifelse(model.data$gender=="",0,1)* ifelse(model.data$race_id==187262,0,1)* ifelse(model.data$race_id==184238,0,1)* ifelse(model.data$race_id==179250,0,1)* ifelse(model.data$starting_price_decimal=="na",0,1)* ifelse(model.data$days_since_ran<=100,1,0)* ifelse(model.data$age>=0&model.data$age<=20,1,0) include.data<-ifelse(is.na(include.data),0,include.data) #ifelse(model.data$speed_rating<=120,1,0) #ifelse(model.data$official_rating>=0,1,0) ############################### include.test.data<-ifelse(test.data$gender=="",0,1)* ifelse(test.data$race_id==187262,0,1)* ifelse(test.data$race_id==184238,0,1)* ifelse(test.data$race_id==179250,0,1)* ifelse(test.data$starting_price_decimal=="na",0,1)* ifelse(test.data$days_since_ran<=100,1,0)* ifelse(test.data$age>=0&test.data$age<=20,1,0) include.test.data<-ifelse(is.na(include.test.data),0,include.test.data) test.data.reduced<-test.data[include.test.data==1,] test.data.reduced$stall_number.f<-as.factor(test.data.reduced$stall_number) test.data.reduced$age.f<-as.factor(test.data.reduced$age) test.data.reduced$win.f<-as.factor(test.data.reduced$win) ######################### model.data.reduced<-model.data[include.data==1,] model.data.reduced$stall_number.f<-as.factor(model.data.reduced$stall_number) model.data.reduced$age.f<-as.factor(model.data.reduced$age) model.data.reduced$win.f<-as.factor(model.data.reduced$win) model<-glm(win.f~days_since_ran+gender+official_rating+stall_number.f+age.f,data=model.data.reduced,family=binomial) ######################### #do predictions model.prob<-predict(model,newdata=test.data.reduced,type="response") bm.prob<-test.data.reduced$bm_win_prob max(bm_win_prob) c<-1.3 bet<-ifelse(model.prob>c*bm.prob,1,0) #############only bet on 1 horse per race, highest win.prob out of them? profit<-ifelse(win==1,starting_price_decimal-1,-1) profit<-ifelse(bet==1,profit,0) profit<-ifelse(is.na(profit),0,profit) }
and gives me error:
error in family(object)$linkinv(pred) : argument eta must nonempty numeric vector
i have no idea start fixing this. thought me trying apply profit vector after every loop got rid of , still happens...
any appreciated.
at point in for loop, glm()
not returning variable model
.
when passing empty model
predict, r
generating error. root of problem because glm()
not able fit model model.data.reduced
. should check size of model.data.reduced
being passed glm()
.
i have run same problem when creating model glm()
, passing results predict inside of lapply()
.
Comments
Post a Comment