1

我正在尝试运行具有 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]?我尝试将我的 [] 切换为 (),但是它给了我一个错误,说它找不到函数“状态”,即使我刚刚在上面定义了它。任何帮助表示赞赏。

4

1 回答 1

1

除了我的评论,这是另一个解决方案:

tiempo <- ifelse(state == '0', rexp(N,Mu), 
                 ifelse(state == '4', rexp(N,Lambda), rexp(N, Mu+Lambda)))

避免循环可能会缩短执行时间。

于 2013-03-15T20:51:12.427 回答