【问题标题】:Error: no 'dimnames' attribute when trying to assign to array错误:尝试分配给数组时没有“dimnames”属性
【发布时间】:2013-04-21 00:26:08
【问题描述】:
`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 ,知道为什么会发生这种情况

【问题讨论】:

    标签: arrays r assign named


    【解决方案1】:

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

    【讨论】:

    • 嗨,它确实解决了第一个错误,但现在我有另一个错误样本中的错误(BrokerPosition,1,rep = TRUE,prob = probabilities):概率数不正确..我的矩阵是 9* 3矩阵
    • probabilities 应该是一个长度为 3 的数字向量,描述了 BrokerPosition 中的元素将被采样的概率。由于BrokerPosition 中有 3 个元素,因此probabilities 中需要 3 个元素
    猜你喜欢
    • 2019-01-10
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2018-03-29
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多