[R] Creation of a vector of time series from a data frame

William Dunlap wdunlap at tibco.com
Tue Jul 31 21:28:11 CEST 2012


See in-line comments below.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of monthodon
> Sent: Tuesday, July 31, 2012 7:57 AM
> To: r-help at r-project.org
> Subject: [R] Creation of a vector of time series from a data frame
> 
> Hello,
> 
> I am a new user of R. I am trying to create a vector of time series called
> "LTot" from a data frame. The purpose is to call LTot element from a loop
> to make multiple regressions over a large number of regressors. Here a piece
> of R code
> 
> OGData <- read.table("heartatk4R.txt", header=TRUE)
> OGCol <- ncol(OGData)
> OGRow <- nrow(OGData)
> S1.ts=ts(OGData[,1])
> # Definition of the time series vector
> LTot=matrix(,nrow=OGCol)
> # assignment of each column of the data frame to an element of the time
> series vector
> for (i in 1:OGCol) {LTot[1:OGRow,i] <- ts(OGData[,i]);}
> 
> When I run R, I got the following error message:
> 
> Error in LTot[1:OGRow, i] <- ts(OGData[, i]) : subscript out of bounds
> 
> I will appreciate it if somebody could help me on this issue.

When you see 'subscript out of bounds', suspect that the subscript operator, "[",
is the problem.  There are two calls to "[" in the line quoted in the error message:
look at the dimensions of the two objects being subscripted with dim(LTot) and
dim(OGData). If those numbers look bad, figure out why the object doesn't have
the expected dimensions.   If those numbers look ok, change your loop a bit to print the current
value of 'i' so you can tell what it was when the error occurred.  If you still cannot
see the problem, break up the statement in the loop so the error can occur only
on a line with one call to "[" (so the error message tells you which is at fault).
   for(i in 1:OGCol) {
    cat("i=", i, "\n")
    tmp <- ts(OGData[,i]
    LTot[1:OGrow,i] <- tmp
  }

There are more advanced methods for debugging (e.g., set options(error=recover))
but adding print statements can quickly solve a lot of debugging problems.

> 
> 
> Thank you.
> 
> X.
> 
> 
> 
> --
> View this message in context: http://r.789695.n4.nabble.com/Creation-of-a-vector-of-
> time-series-from-a-data-frame-tp4638543.html
> Sent from the R help mailing list archive at Nabble.com.
> 
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list