[R] very slow code execution

Michael Dewey ||@t@ @end|ng |rom dewey@myzen@co@uk
Thu Feb 7 10:38:30 CET 2019


Well I do not know about data.table but in standard R if you go
AICc[,1] <- 3
it fills the whole column with 3 so you will end up with a table with 
the last value of AICc stored in every row which is almost certainly not 
what you want.

Michael

On 06/02/2019 14:15, salah maadawy wrote:
> Hi Micheal, Maybe there is a simple way but i wanted to get the lowest 
> aicc ana i could not find a way to do so, that's why i created the 
>   table to store all possible outcomes and then i can easily get the 
> minimum value and the values of (i,j and k) used for that minimum value. 
> The first column in the table is AICc[,1] to store i and second column 
> for j and so on. Maybe i am mistaken and this won't give me what i want, 
> the code been running for 5 hours now. So i am waiting
> 
> On Wed, Feb 6, 2019 at 4:59 PM Michael Dewey <lists using dewey.myzen.co.uk 
> <mailto:lists using dewey.myzen.co.uk>> wrote:
> 
>     This is not an answer to your speed problem but are your assignments to
>     AICc[,1] and so on doing what you hope they are doing?
> 
>     Michael
> 
>     On 06/02/2019 12:03, salah maadawy wrote:
>      > i am a beginner regarding R but i am trying to do a simple thing,
>     but it is
>      > taking too much time and i am asking if there is any way to
>     achieve what i
>      > need, i have a time series data set with 730 data points, i
>     detected 7, 354
>      > and 365 seasonality periods. i am trying to use Fourier terms for
>      > seasonality and for loop to get the K value for each while
>     minimizing AICc,
>      > my code is
>      >
>      >      AICc<- data.table(matrix(nrow = 96642, ncol = 4))for (i in
>     1:3) {
>      >    for (j in 1:177) {
>      >      for (k in 182) {                     #i,j and k values are
>     choosen
>      > with regad that K cannot exceed seasonality period/2
>      >        z1 <- fourier(ts(demand,frequency = 7), K=i)
>      >        z2 <- fourier(ts(demand,frequency=354), K=j)
>      >        z3 <- fourier(ts(demand,frequency = 365),K=k)
>      >        fit <- auto.arima(demand, xreg =cbind(z1,z2,z3),
>      >           seasonal = FALSE)
>      >        fit$aicc
>      >        AICc[,1]<-i
>      >        AICc[,2]<-j
>      >        AICc[,3]<-k
>      >        AICc[,4]<-fit$aicc
>      >      }
>      >
>      >    }
>      > }
>      >    AICc
>      >
>      > i have created a data table to store AICc values from all
>     possible i,j,k
>      > combinations so that i can find later the minimum AICc value. the
>     problem
>      > now is that it is taking forever to do so not only to iterate all
>      > combinations but also due to the large K values.
>      >
>      > , is there any possible solution for this? thank you in advance
>      >
>      >       [[alternative HTML version deleted]]
>      >
>      > ______________________________________________
>      > R-help using r-project.org <mailto:R-help using r-project.org> mailing list
>     -- To UNSUBSCRIBE and more, see
>      > https://stat.ethz.ch/mailman/listinfo/r-help
>      > PLEASE do read the posting guide
>     http://www.R-project.org/posting-guide.html
>      > and provide commented, minimal, self-contained, reproducible code.
>      >
> 
>     -- 
>     Michael
>     http://www.dewey.myzen.co.uk/home.html
> 

-- 
Michael
http://www.dewey.myzen.co.uk/home.html



More information about the R-help mailing list