[R] Breaking up a vector

Rui Barradas ruipbarradas at sapo.pt
Fri May 25 17:56:01 CEST 2012


Hello,

Tip: see the difference between the following two.


for(i in 1:7)
	cat(i, ":", (i-1)*7:(i)*7, "\n")
for(i in 1:7)
	cat(i, ":", ((i-1)*7):(i*7), "\n")


(operator ':' has high precedence...)

Hope this helps,

Rui Barradas

AOLeary wrote
> 
> Hi all,
> 
> My problem is as follows: 
> 
> I want to run a loop which calculates two values and stores them in
> vectors r and rv, respectively.
> They're calculated from some vector x with length a multiple of 7.
> 
> x <- c(1:2058)
> 
> I need to difference the values but it would be incorrect to difference it
> all in x, it has to be broken up first. I've tried the following:
> 
> r <- c(1:294)*0
> rv <- c(1:294)*0
> 
> #RUN A LOOP WHERE YOU INPUT THE lx[(i-1)*7:i*7] INTO Z
> for (i in 1:294){
> #CREATE A NEW VECTOR OF LENGTH 7
> z <- NULL
> length(z)=7
> dz <- NULL
> dz2 <- NULL
> 
> #STORE THE VALUES IN z
> z <- lx[1+(i-1)*7:(i)*7]
> 
> #THEN DIFFERENCE THOSE
> #THIS IS r_t,i,m
> dz=diff(z)
> 
> #SUM THIS UP AND STORE IT IN r, THIS IS r_t
> r[i] <- sum(dz)
> 
> #SUM UP THE SQUARES AND STORE IT IN rv, THIS IS RV_t
> dz2 <- dz^2
> rv[i] <- sum(dz2)
> #END THE LOOP
> }
> 
> 
> However, the window seems to expand for some reason, so z ends up being a
> much longer vector than it should be and full of NAs.
> 
> 
> Any help or advice is much appreciated.
> 
> Aodhán
> 


--
View this message in context: http://r.789695.n4.nabble.com/Breaking-up-a-vector-tp4631329p4631342.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list