用R生成一个公式的序列

时间:2014-05-05 17:01:43

标签: r

我想生成一个序列:

X_n= |X_{n-1} - epsilon_n|,

其中epsilon_n具有指数分布。

例如

epsilon <- rexp(100, rate = 0.3)

2 个答案:

答案 0 :(得分:4)

使用Reduce

X0 <- 10
set.seed(42)
epsilon<-rexp(100, rate = 0.3)
eps <- c(X0, epsilon)

X <- Reduce(function(x, y) abs(x-y), eps, accumulate = TRUE)

plot(X)

enter image description here

答案 1 :(得分:1)

## n is length of the sequence, X0 is initial value, 
## default exponential rate is 0.3
xSeq <- function(n,X0,rate=0.3){
  vOut <- rep(0,n)
  vOut[1] <- X0
  eSeq <- rexp(n-1,rate)
  for(i in 2:n){
    vOut[i] <- abs(vOut[i-1]-eSeq[i-1])
    vOut
  }
  return(vOut)
}