Skip to content

Counting the loop-round of a "for"-loop

4 messages · jolo999, Ista Zahn, Greg Snow

#
Dear all,

i have daily stock prices for more than 10 years and want to compute annual
volatilities for certain dates during this period.  Since i have found no
"easy" way to work with time data, the data presents itself in the structure

TIme Index - Stock Price
1 - 15,6
2 - 17
...
...
2010 - 28
2011- 28,5
...
4500 - 23

Since I want to have the volatility only for certain dates, I define these
dates in a vector

Deal_Dates <- c(500,600,700,805)  

and use the for-command to calculate these specific volatities via 

for(i in Deal_Dates){Volatility(i)}

My problem is now, that I want to save the results in a new matrix which i
created in the structure

results <- matrix(rep(NA,4*2),4,2) in a way that

Time Index - Volatility
500 - 0.55
600 - 0.44
700 - 0.45
805 - 0.66
is stored in the results matrix.

How can I save the result of each for-loop  in the matrix? I want the
respective Time-Index of the loop to be put in the first column and the
volatility in the second column. Since my vector for the for-loop consists
of "random" values for the Time-Index, i can't write

resultsl[i,1] = Time Index and
results[i,2] = Volatility

I am looking for something that gives me the current round or iteration of
the for-loop in order to replace the "i" in adressing the cells of the
result matrix.

Hope you can help!


--
View this message in context: http://r.789695.n4.nabble.com/Counting-the-loop-round-of-a-for-loop-tp4381319p4381319.html
Sent from the R help mailing list archive at Nabble.com.
#
Hi,

You can initialize a counter and update it in the loop. An silly example 
(unrelated to yours because it was not reproducible) of this technique is:


x <- matrix( , ncol = 2, nrow = 26)

n <- 0
for(i in letters) {
  n <- n+1
  x[n,] <- c(i, n)
}


Best,
Ista
On Sunday, February 12, 2012 07:17:33 AM jolo999 wrote:
1 day later
#
Consider using sapply instead of a for loop, if the code in the sapply
call returns a vector, and every vector is the same length, then
sapply will automatically form it into a matrix for you.
On Sun, Feb 12, 2012 at 12:30 PM, jolo999 <jonas.lorson at ebs.de> wrote: