I am relatively new to R and object oriented programming. I have relied on SAS for most of my data analysis. I teach an introductory undergraduate forecasting course using the Diebold text and I am considering using R in addition to SAS and Eviews in the course. I work primarily with univariate or multivariate time series data. I am having a great deal of difficulty understanding and working with "ts" objects particularly when it comes to referencing variables in plot commands or in formulas. The confusion is amplified when certain procedures (lm for example) coerce the "ts" object into a data.frame before application with the results that the output is stored in a data.frame object. For example the two sets of code below replicate examples from chapter 2 and 6 in the text. In the first set of code if I were to replace "anscombe<-read.table(fname, header=TRUE)" with "anscombe<-ts(read.table(fname, header=TRUE))" the plot() commands would generate errors. The objects "x1", "y1" ... would not be recognized. In this case I would have to reference the specific column in the anscombe data set. If I would have constructed the data set from several different data sets using the ts.intersect() function (see second code below)the problem becomes even more involved and keeping track of which columns are associated with which variables can be rather daunting. All I wanted was to plot actual vs. predicted values of "hstarts" and the residuals from the model.
Given the difficulties I have encountered I know my students will have similar problems. Is there a source other than the basic R manuals that I can consult and recommend to my students that will help get a handle on working with time series objects? I found the Shumway "Time series analysis and its applications with R Examples" website very helpful but many practical questions involving manipulation of time series data still remain. Any help will be appreciated. Thanks, Richard Saba Department of Economics Auburn University Email: [EMAIL PROTECTED] Phone: 334 844-2922 anscombe<-read.table(fname, header=TRUE) names(anscombe)<-c("x1","y1","x2","y2","x3","y3","x4","y4") reg1<-lm(y1~1 + x1, data=anscombe) reg2<-lm(y2~1 + x2, data=anscombe) reg3<-lm(y3~1 + x3, data=anscombe) reg4<-lm(y4~1 + x4, data=anscombe) summary(reg1) summary(reg2) summary(reg3) summary(reg4) par(mfrow=c(2,2)) plot(x1,y1) abline(reg1) plot(x2,y2) abline(reg2) plot(x3,y3) abline(reg3) plot(x4,y4) abline(reg4) .......................................................................... fname<-file.choose() tab6.1<-ts(read.table(fname, header=TRUE),frequency=12,start=c(1946,1)) month<-cycle(tab6.1) year<-floor(time(tab6.1)) dat1<-ts.intersect(year,month,tab6.1) dat2<-window(dat1,start=c(1946,1),end=c(1993,12)) reg1<-lm(tab6.1~1+factor(month),data=dat2, na.action=NULL) summary(reg1) hstarts<-dat2[,3] plot1<-ts.intersect(hstarts,reg1$fitted.value,reg1$resid) plot.ts(plot1[,1]) lines(plot1[,2], col="red") plot.ts(plot[,3], ylab="Residuals") ______________________________________________ R-help@r-project.org mailing list 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.