假設我想創建n = 3個隨機遊走路徑(pathlength = 100)給定預加矩陣(100x3)加/減1。第一路徑將在10開始,第二個爲20,第三個爲30:向量化這個for循環(當前行取決於上面的行)
set.seed(123)
given.rand.matrix <- replicate(3,sign(rnorm(100)))
path <- matrix(NA,101,3)
path[1,] = c(10,20,30)
for (j in 2:101) {
path[j,]<-path[j-1,]+given.rand.matrix[j-1,]
}
的最終值(給出的種子和RAND矩陣)14,6,34 ...這是期望的結果......但...
問題:有沒有一種方法來矢量化for循環?問題是計算時路徑矩陣尚未完全填充。因此,用 path[2:101,]<-path[1:100,]+given.rand.matrix
代替環路主要返回NAs。我只想知道這種for循環是否可以在R中避免。
非常感謝您提前。
類似最近[線程](http://stackoverflow.com/questions/4695224/is-it-possible-對矢量元素進行矢量更新) – VitoshKa 2011-01-22 21:37:56