1
`function(trans,initprob,N)'
{
  BrokerPosition <- c("BP", "IP", "SP")
  mysequence <- character()
  firstposition <- sample(BrokerPosition, 1, rep=TRUE, prob=initprob)
  mysequence[1]   <- firstposition

  for (i in 2:N) {
    prevposition <- mysequence[i-1]
    probabilities <- trans[prevposition,]
    BPosition <- sample(BrokerPosition, 1, rep=TRUE, prob=probabilities)
    mysequence[i] <- BPosition
  }

return(mysequence)
}

这是一个模拟马尔可夫链的函数,但是每当我运行它时,我都会收到错误 no 'dimnames' attribute for array ,知道为什么会这样

4

1 回答 1

2

您的数组“mysequence”是字符,因此 R 正在尝试查找行名与 mysequence[i-1] 匹配的行。如果您没有在“trans”上设置行名,这将引发您的错误。使用整数值从 trans 中选择一行,或者在 trans 上设置行名,具体取决于您实际尝试执行的操作。

于 2013-04-26T18:43:50.890 回答