错误:尝试分配给数组时没有'dimnames'属性

时间:2013-04-26 18:34:10

标签: arrays r assign named

`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)
}

这是一个模拟马尔可夫链的函数,但每当我运行它时,我得到数组的错误没有'dimnames'属性,任何想法为什么会发生这种情况

1 个答案:

答案 0 :(得分:2)

你的数组'mysequence'是字符,所以R试图找到rowname匹配mysequence [i-1]的行。如果你没有在'trans'上设置rownames,这将抛出你的错误。使用整数值从trans中选择一行,或者在trans上设置rownames,具体取决于您实际尝试的操作。