【问题标题】:How to make vector pick 3 possible values depending on last value in R如何根据 R 中的最后一个值使向量选择 3 个可能的值
【发布时间】:2018-10-03 08:31:01
【问题描述】:

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)}

感谢您的帮助。

【问题讨论】:

  • 您说“下一个值取决于上一个值”。在您上面的代码中,您如何确保是这种情况?
  • 我不知道该怎么做,这就是我问这个问题的原因。我对代码的思考过程是它会为每个 i 执行此操作,显然我错了。我对编码很陌生
  • 请详细说明算法。最终结果是什么?根据您描述的概率,对于第一个向量的每个元素都有一个新值?

标签: r loops vector


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多