《R语言循环中忽略错误(3页).doc》由会员分享,可在线阅读,更多相关《R语言循环中忽略错误(3页).doc(3页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、-R语言循环中忽略错误-第 3 页R语言中忽略循环的错误对多种类的数据使用同一模型/函数时,容易出现各种各样的错误,下面是忽略模型错误的方法:x.inv - try(函数/模型表达式, silent=TRUE)if (try-error %in% class(x.inv) next例子1:count - 0inverses - vector(mode = list, 100)repeat if (count = 100) break count - count + 1 x - matrix(sample(0:2, 4, replace = T), 2, 2) x.inv 60)trynext=
2、try(gam(ORDER_WEEKs(SUM.T.QTYUPPERLIMIT.),method=REML,data=databrand),silent=T)if (try-error %in% class(trynext) next#没有这句的话会出现错误fit1=gam(ORDER_WEEKs(SUM.T.QTYUPPERLIMIT.),method=REML,data=databrand)pre=predict(fit1)#利用当周的数据进行预测erro=sum(pre-databrand$ORDER_WEEK)2)/sum(databrand$ORDER_WEEK-mean(datab
3、rand$ORDER_WEEK)2)df=data.frame(brandid=i,erro=erro)result=rbind(result,df)len=dim(databrand)1newdata=data.frame(y=databrand$ORDER_WEEK2:len, x1=databrand$ORDER_WEEK1:(len-1), x2=databrand$DEMAND_WEEK1:(len-1), x3=databrand$CUST_ORDERED_WEEKCOUNT1:(len-1), x4=databrand$SUM.T.QTYUPPERLIMIT.2:len)addf
4、un=function(x) len=length(x) return(x1:(len-3)+x2:(len-2)+x3:(len-1)+x4:len)newdata1=apply(newdata,2,FUN=addfun)newdata1=as.data.frame(newdata1)trynext1=try(gam(ys(x1)+s(x2)+s(x3)+s(x4),method=REML,data=newdata1),silent=T)if (try-error %in% class(trynext1) nextfit2=gam(ys(x1)+s(x2)+s(x3)+s(x4),metho
5、d=REML,data=newdata1)pre1=predict(fit2)erro1=sum(pre1-newdata1$y)2)/sum(newdata1$y-mean(newdata1$y)2)#nmsedf1=data.frame(brandid=i,erro=erro1)result1=rbind(result1,df1)print(i)write.csv(result1,result_2.csv)summary(fit1)ned=data.frame()for(i in result$brandid) ned=rbind(ned,neddataneddata$BRAND_ID=i,)echartR(ned,x=YEAR_WEEK,y=ORDER_WEEK,series=BRAND_ID,type=line)dim(databrand)write.csv(result1,resultdelay1.csv)