【发布时间】:2019-11-07 17:34:09
【问题描述】:
我有一个转换矩阵如下:
stage1 stage2 stage3 stage4 stage5
stage1 0.967716 0.017084 0.000 0.000000 0.015200
stage2 0.100000 0.500000 0.200 0.100000 0.100000
stage3 0.200000 0.300000 0.300 0.100000 0.100000
stage4 0.000000 0.000000 0.038 0.917498 0.044502
stage5 0.000000 0.000000 0.000 0.000000 1.000000
下面的matlab代码是这个转移矩阵第一行的条件循环
for i=1:1000
a=unifrnd(0,1);
if a<=0.967716
stage(i)=1;
else
if a<=0.9848
stage(i)=2;
else
stage(i)=5;
end
end
end
这意味着在 1000 次迭代中,如果条件为真,均匀分布生成的数字将被分配到五个阶段之一。生成的数字先与停留在当前状态的概率进行比较,如果条件不满足则与上一个概率与转移到下一个状态的概率之和(0.967716 + 0.017084)进行比较,以此类推。
现在我想将这些代码转换为 R 代码。因此,如果我有一个跟踪矩阵“f”,则均匀分布生成的数字将分配给该矩阵的元素之一(列等于上述转换矩阵状态(阶段),行等于迭代)。
f<-matrix(NA, nrow=5, ncol=1000)
...
有人可以帮助我吗?
【问题讨论】:
-
嗨,Meysam,您能否更准确地说明您的问题。您是否已经尝试过解决问题的方法?这是你的第一个 R 代码吗?如果是的话,你可以通过 R 为 Emmanuel Paradis 的初学者学习基础知识。
-
您好 Rémi Coulaud,感谢您的回复。我几乎是 R 的初学者用户。是的,以前尝试使用以下代码解决此问题并考虑另一个假设示例。感谢您的建议。p