Advertisement
Guest User

Untitled

a guest
Mar 20th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. library("gWidgets")
  2. library("DBI")
  3. library("RMySQL")
  4. library("dbConnect")
  5. library("forecast")
  6. library("doParallel")
  7. cl <- makeCluster(7)
  8. registerDoParallel(cl)
  9.  
  10. tictoc::tic()
  11. con=dbConnect(MySQL(),user='***',password='***',dbname='demo',host='***')
  12. dbListTables(con)
  13.  
  14. myQuery<-"select * from consumo_mysql"
  15. DF<-dbGetQuery(con,myQuery)
  16. df<-DF[DF$ANIO<2016,]
  17. a<-unique(df$CODIGO_HOSPITAL)
  18. for (i in 1:length(a)){
  19. codigo_cas<-df$CODIGO_HOSPITAL[i]
  20. #myQuery2<-paste("select * from consumo_mysql where CODIGO_HOSPITAL='",codigo_cas,"'",sep='')
  21. #df2<-dbGetQuery(con,myQuery2)
  22. df2<-df[df$CODIGO_HOSPITAL==codigo_cas,]
  23. b<-unique(df$CODIGO)
  24. bb<-length(b)
  25. foreach(j=1:bb) %dopar% {
  26.  
  27. c_p<-df$CODIGO[j]
  28. df3<-df[df$CODIGO==c_p,]
  29. df3<-df3[with(df3, order(ANIO, MES)), ]
  30.  
  31. aux<-DF[DF$CODIGO_HOSPITAL==codigo_cas,]
  32. aux<-aux[aux$CODIGO==c_p,]
  33. cc<-dim(aux)
  34. ###comensar if
  35. if(cc[1]==36){
  36. DATAY<-ts(df3$CONSUMO_REAL)
  37. mdl <- nnetar(DATAY,lambda=0)
  38. proyeccion<-forecast(mdl,h=12)
  39. proyeccion<-data.frame(proyeccion)
  40. proyeccion<-proyeccion$Point.Forecast
  41. act<-paste("update consumo_mysql set CONSUMO_FORECAST=",proyeccion[1]," where CODIGO_HOSPITAL ='",codigo_cas,"'","and CODIGO =",c_p,sep=''," and ANIO =",2016," and MES =",1)
  42. act<-dbSendQuery(con,act)
  43. dbFetch(act)
  44. dbClearResult(act)
  45.  
  46. aux<-aux[with(aux, order(ANIO, MES)), ]
  47. lp=1;
  48. for(k in 1:11){
  49. p<-25+k
  50. lp<-lp+1;
  51. DATAY=ts(aux$CONSUMO_REAL[1:p])
  52. mdl <- nnetar(DATAY,lambda=0)
  53. proyeccion2<-forecast(mdl,h=1)
  54. proyeccion2<-data.frame(proyeccion2)
  55. proyeccion2<-proyeccion2$Point.Forecast
  56. proyeccion[k+1]<-proyeccion2[1]
  57.  
  58. act<-paste("update consumo_mysql set CONSUMO_FORECAST=",proyeccion2[1]," where CODIGO_HOSPITAL ='",codigo_cas,"'","and CODIGO =",c_p,sep=''," and ANIO =",2016," and MES =",lp)
  59. act<-dbSendQuery(con,act)
  60. dbFetch(act)
  61. dbClearResult(act)
  62. }
  63.  
  64. }#fin del if
  65.  
  66. }#fin del sefundo if
  67.  
  68. }#fin del primer bucle
  69.  
  70. dbDisconnect(con)
  71.  
  72. tictoc::toc()
  73. stopCluster(cl)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement