R:截尾 cumsum(截尾随机游走)
R: censored cumsum (censored random walk)
我希望能够审查随机游走数据的生成,使游走永远不会低于目标值(通常为 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')
为什么不创建自己的函数(从您的代码中复制,但添加了 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")
我希望能够审查随机游走数据的生成,使游走永远不会低于目标值(通常为 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')
为什么不创建自己的函数(从您的代码中复制,但添加了 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")