簡體   English   中英

在R中的循環中替換矩陣中的行

[英]Replacing rows in a matrix in a loop in R

我試圖在R中編寫一個簡單的馬爾可夫模型。為了生成馬爾可夫跟蹤,我創建了一個空矩陣,其中ncol =狀態數,nrow =循環數。 我正在使用循環編寫函數,用每個循環替換矩陣的每一行,但是循環使我失敗了。

Rounds<-function(cycles,TransMatrix){
  for (i in 1:nrow(MarkovTrace)){
    MarkovTrace[i+1,]<-as.vector(MarkovTrace[i,]%*%TransMatrix)
  }
}

有什么想法為什么呢? 不過,我可以在循環外部手動執行此操作。

MarkovTrace[2,]<-as.vector(MarkovTrace[1,]%*%TransMatrix)
MarkovTrace[3,]<-as.vector(MarkovTrace[2,]%*%TransMatrix)

非常感謝!

您可以使用<<-運算符從外部作用域影響變量。 但是,也請考慮避免這種需要的編碼樣式,因為它將使您的代碼更可重用且更易於調試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM