r - 如何根据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)}
谢谢你的帮助。
解决方案
设置您的初始值并根据您指定的概率添加差异:
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
推荐阅读
- graphql - 远程服务器上的 Apollo Playground
- java - 尝试运行 HAPI TestPanel 源代码
- gwt - 像 GWT ListBox.setVisibleItemCount() 一样,SmartGWT 中是否有可用的 API
- ios - 图像无法正常工作 Xamarin Cross
- hyperledger-fabric - 在 Hyperledger Fabric v1.2 中实现 ACL
- python - 如何在 Python 中将此字符串转换为整数和其他字符串
- javascript - 4 vAxes - 谷歌图表
- c# - 创建时隐藏的表单不接收广播消息
- angular6 - Angular 6 - 如何从使用 *ngFor 的表中动态创建的输入框中获取 component.ts 中的输入值?
- machine-learning - 机器学习标称数据