[R] Building a random walk vector

Duncan Murdoch murdoch at stats.uwo.ca
Fri Aug 4 03:50:10 CEST 2006


On 8/3/2006 9:17 PM, Matthew Wilson wrote:
> I'm studying R in my free time.  I want to build a vector where each
> element is equal to the element before it in the sequence plus some
> random tweak.
> 
> In python, I would write:
> 
> vec = [100] * 50 # make a 50-element list with each element set to 100
> from random import randint
> for i, v in enumerate(vec):
>     if i is not 0: # if we're not on the first element
>         vec[i] = vec[i-1] + randint(-2, 2)
> 
> I suspect R has some fancier way of doing this.  How to?

Assuming randint(-2, 2) gives a value uniform on (-2, 2) a quick way to 
do what you want is

vec <- 100 + c(0, cumsum(runif(49, -2, 2)))

Duncan Murdoch



More information about the R-help mailing list