D <- read.table("D:/R/MY_script/RTS_ALL(Clear).txt",sep=",",head=T) D <- tail(D,50000) get_periods <- function() { P <- D$X.CLOSE. ln <- length(P) par.ma_2.3 <- matrix(nrow = ln , ncol = 4) colnames(par.ma_2.3) <- c("periods" , "frequencies" , "moduli" , "rates") library(Rssa) WL <- 100 # window length for(i in (WL+1):ln) { im <- i-1 iv <- (im-WL):im #====ssa==== s <- ssa( P[iv] ) p <- parestimate(s, list(c(2:3)), method = "esprit-ls") par.ma_2.3[i,1] <- p$periods[1] par.ma_2.3[i,2] <- p$frequencies[1] par.ma_2.3[i,3] <- p$moduli[1] par.ma_2.3[i,4] <- p$rates[1] print(i) } par.ma_2.3 <- as.data.frame(par.ma_2.3) par.ma_2.3$periods [ par.ma_2.3$periods == Inf ] <- 50000 par.ma_2.3$periods <- round(par.ma_2.3$periods) dt <- na.omit( cbind(D,par.ma_2.3) ) tslab <- dt[,1:9] period <- dt[,-c(1:9)] return( list ( tslab=tslab , period=period)) } li <- get_periods() save(li,file ="D:/R/dimamic_period_in_indicator/list.RData")