2013-04-26 75 views
0

如何提高以下代碼的速度?R中值的分配

for (i in 1:nrow(training)){ 
    score[training[i,1],training[i,2],training[i,4]] = training[i,3] 
    } 

Training是具有四列的矩陣。我只是想根據上面的公式構建一個值爲training[i,3]的數組。

謝謝!

回答

6

您可以使用矩陣進行索引。這裏是[的文檔的相關部分:

A third form of indexing is via a numeric matrix with the one 
column for each dimension: each row of the index matrix then 
selects a single element of the array, and the result is a vector. 
你的情況

因此,for環可以替換爲:

score[training[, c(1, 2, 4)]] <- training[, 3] 
+0

+1投入文檔 – 2013-04-26 05:01:54

+0

Works Perfect!謝謝! – user1784579 2013-04-26 06:00:09