SHARE
TWEET

Untitled

a guest Mar 20th, 2017 69 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top