首页 > 解决方案 > 如何根据R中的最后一个值使向量选择3个可能的值

问题描述

R中,我试图创建一个包含 12 个数字的向量。第一个数字是 40 从 40 它可以以 0.5 的概率下降 1,以 0.2 的概率保持不变或以 0.3 的概率上升 1。下一个值取决于最后一个值。例如,一个可能的向量可以是:

           40 39 38 37 37 38 37 36 37 38 39 39

我尝试了几种不同的方法,但我无法让任何一种工作。我最近的尝试是:

xx=c() num <- 60 for (i in 1:12){ xx[i] <- sample(x=c(num,num+5,num+10),size=1,prob = probs)}

谢谢你的帮助。

标签: rloopsvector

解决方案


设置您的初始值并根据您指定的概率添加差异:

x <- 40

for (i in 2:12){
    x[i] <- x[i-1]+sample(c(-1, 0, 1), size=1, prob=c(.5, .2, .3))
}

x
[1] 40 41 41 40 41 40 39 39 40 39 38 38

推荐阅读