2013-04-26 107 views
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) 
} 

這是一個由模擬馬爾可夫鏈的功能,但每當我運行它,我得到的錯誤數組沒有「dimnames」屬性,任何想法,爲什麼是發生這種情況錯誤:試圖分配給數組時沒有「dimnames」屬性

回答

2

你的數組'mysequence'是字符,所以R試圖找到與rowname匹配mysequence [i-1]的行。如果你沒有在'trans'上設置rownames,這會拋出你的錯誤。可以使用整數值從trans中選擇一行,也可以使用trans來設置rownames,具體取決於您實際嘗試執行的操作。

+0

嗨它確實解決了第一個錯誤,但現在我有另一個錯誤樣本錯誤(BrokerPosition,1,rep = TRUE,prob = probabilities): 錯誤的概率數量..my矩陣是一個9 * 3矩陣 – 2013-04-26 19:33:34

+0

'概率「應該是描述BrokerPosition中的元素將被採樣的概率的長度爲3的數字向量。既然'BrokerPosition'中有3個元素,'probabilities'中需要3個元素 – 2013-04-26 21:02:16

相關問題