2016-02-28 116 views
0

我希望能够审查随机游走数据的生成,使步行永远不会低于目标值(通常为0)。下面的代码来完成我希望它除了我宁愿有一个工作原理类似cumsum,我可以使用快速通过数百万这样的值的行如cumsum(x,min=0)紧缩的功能是什么:R:审查cumsum(审查随机游走)

x <- rnorm(1000) 
y <- rep(0,length(x)) 
for(i in 2:length(x)) y[i] <- max(x[i]+y[i-1], 0) 
plot(y, type='l') 

Censored Random Walk

+3

参见[此相关的QA(http://stackoverflow.com /问题/ 21262424/R-有界累积总和) –

回答

0

为什么不把自己的功能(从您的代码复制,但是添加的y[1]初始化,使其类似于cumsum行为):

cumsum0<-function(x,min=0){ 
    y<-rep(0,length(x)) 
    y[1]<-max(x[1],0) 
    for (i in 2:length(x)) y[i] <- max(x[i]+y[i-1], min) 
    return(y) 
} 

x<-rnorm(1000) 
plot(cumsum0(x),type="l")