R:被删除的cumsum(审查随机游走)

时间:2016-02-28 06:19:45

标签: r cumsum

我希望能够审查随机游走数据的生成,以便步行永远不会低于目标值(通常为0)。下面的代码完成了我想要的内容,除了我希望有一个类似于cumsum的函数,我可以用来快速处理数百万行这样的值,例如cumsum(x,min=0)

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

1 个答案:

答案 0 :(得分: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")