x <- c(340.4,343.2,345,346.6,348.7,351.1,352.7,354.8,359.8,364.4,366.2,368.8,369.6,370.6,374.2,378.1,381,383.2,387.3,391.4,395.1,399.1,403,406.3,410.2,413.3,418.4,421.4,422.5,425.5,427.3,430.7,433.2,437.5,439.9,443,445.6,446.2,449.3,453.9,458,461.2,463.7,466,468.3,471.7,474.7,477.3,479.8,482.6,485.6,488.5,492,494.8,498.3,502.1,505.8,511.7,516.6,521.3,526.1,530.4,534.7,538.4,544.6,547.7,551.4,554.3,557.5,560.7,563.8,566.2,567.2,569.3,570.9,573,575.1,578.1,581,584.4)
par2 = '12'
par1 = 'additive'
par2 <- '12'
par1 <- 'additive'
#'GNU S' R Code compiled by R2WASP v. 1.2.327 ()
#Author: root
#To cite this work: Wessa P., (2013), Classical Decomposition (v1.0.4) in Free Statistics Software (v$_version), Office for Research Development and Education, URL http://www.wessa.net/rwasp_decompose.wasp/
#Source of accompanying publication: Office for Research, Development, and Education
#
par2 <- as.numeric(par2)
x <- ts(x,freq=par2)
m <- decompose(x,type=par1)
m$figure
postscript(file="/var/wessaorg/rcomp/tmp/1pt3n1461663165.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) 
plot(m)
dev.off()
mylagmax <- length(x)/2
postscript(file="/var/wessaorg/rcomp/tmp/23sh61461663165.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) 
op <- par(mfrow = c(2,2))
acf(as.numeric(x),lag.max = mylagmax,main='Observed')
acf(as.numeric(m$trend),na.action=na.pass,lag.max = mylagmax,main='Trend')
acf(as.numeric(m$seasonal),na.action=na.pass,lag.max = mylagmax,main='Seasonal')
acf(as.numeric(m$random),na.action=na.pass,lag.max = mylagmax,main='Random')
par(op)
dev.off()
postscript(file="/var/wessaorg/rcomp/tmp/3794r1461663165.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) 
op <- par(mfrow = c(2,2))
spectrum(as.numeric(x),main='Observed')
spectrum(as.numeric(m$trend[!is.na(m$trend)]),main='Trend')
spectrum(as.numeric(m$seasonal[!is.na(m$seasonal)]),main='Seasonal')
spectrum(as.numeric(m$random[!is.na(m$random)]),main='Random')
par(op)
dev.off()
postscript(file="/var/wessaorg/rcomp/tmp/4po3v1461663165.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) 
op <- par(mfrow = c(2,2))
cpgram(as.numeric(x),main='Observed')
cpgram(as.numeric(m$trend[!is.na(m$trend)]),main='Trend')
cpgram(as.numeric(m$seasonal[!is.na(m$seasonal)]),main='Seasonal')
cpgram(as.numeric(m$random[!is.na(m$random)]),main='Random')
par(op)
dev.off()

#Note: the /var/wessaorg/rcomp/createtable file can be downloaded at http://www.wessa.net/cretab
load(file="/var/wessaorg/rcomp/createtable")

a<-table.start()
a<-table.row.start(a)
a<-table.element(a,'Classical Decomposition by Moving Averages',6,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'t',header=TRUE)
a<-table.element(a,'Observations',header=TRUE)
a<-table.element(a,'Fit',header=TRUE)
a<-table.element(a,'Trend',header=TRUE)
a<-table.element(a,'Seasonal',header=TRUE)
a<-table.element(a,'Random',header=TRUE)
a<-table.row.end(a)
for (i in 1:length(m$trend)) {
a<-table.row.start(a)
a<-table.element(a,i,header=TRUE)
a<-table.element(a,x[i])
if (par1 == 'additive') a<-table.element(a,signif(m$trend[i]+m$seasonal[i],6)) else a<-table.element(a,signif(m$trend[i]*m$seasonal[i],6))
a<-table.element(a,signif(m$trend[i],6))
a<-table.element(a,signif(m$seasonal[i],6))
a<-table.element(a,signif(m$random[i],6))
a<-table.row.end(a)
}
a<-table.end(a)
table.save(a,file="/var/wessaorg/rcomp/tmp/5jtzq1461663165.tab") 

try(system("convert tmp/1pt3n1461663165.ps tmp/1pt3n1461663165.png",intern=TRUE))
try(system("convert tmp/23sh61461663165.ps tmp/23sh61461663165.png",intern=TRUE))
try(system("convert tmp/3794r1461663165.ps tmp/3794r1461663165.png",intern=TRUE))
try(system("convert tmp/4po3v1461663165.ps tmp/4po3v1461663165.png",intern=TRUE))

