我正在尝试运行具有5个状态的概率矩阵的模拟。
N<-10 #for 10 simulations
state<-simulat(P,N,1) #P is a matrix defined earlier in my code
for(i in 1:N)
{
if (state[i]=='0')
{
time[i]<-rexp(1,Mu)
}
if (state[i]=='1' || state[i]=='2' || state[i]=='3')
{
time[i]<-rexp(1,(Mu+Lamda))
}
if (state[i]=='4')
{
time[i]<-rexp(1,Lamda)
}
}
Error in time[i] <- rexp(1, Mu) :
object of type 'closure' is not subsettable
这是格式化问题还是我错误地定义了我的状态[i]?我已经尝试将我的[]切换为(),但是它给了我一个错误,说它无法找到函数'state',即使我刚刚在上面定义了它。任何帮助表示赞赏。
答案 0 :(得分:1)
除了我的评论,这是另一个解决方案:
tiempo <- ifelse(state == '0', rexp(N,Mu),
ifelse(state == '4', rexp(N,Lambda), rexp(N, Mu+Lambda)))
避免循环可能会缩短执行时间。