我對R很新,真的需要你的幫助,我的雙循環需要很多時間才能完成。優化R中太長的循環
data
與659322行3列(ID,遊戲,金額)
重複每個ID數次(即幾個遊戲每個ID),但橫跨行不均勻分佈的數據表。我們可以有2個遊戲的ID1(所以ID1出現在2行),5個運動會ID2,4個遊戲的ID3等
我想從data
創建矩陣datmat
有:
- 鈮行= (nb_row = 46028)
ID的唯一值的NB - 遊戲的唯一值的列鈮= NB(nb_col = 30)
和datmat
填入相應的金額值
這裏就是我試過
ID <- unique(data$ID)
Game <- unique(data$Game)
nb_row <- length(ID)
nb_col <- length(Game)
datmat <- matrix(c(0),nb_row,nb_col,dimnames=list(NULL,Game))
for(i in 1:nb_row){
for(j in 1:nb_col){
datmat[i,j] <- data$Amount[data$ID==ID[i] & data$Game==Game[j]]
}
}
dt <- data.table(ID,datmat)
任何建議,不勝感激。謝謝你們!
還參見[這裏](http://stackoverflow.com/questions/9617348/reshape-three-column-data-frame-to -matrix-long-to-wide-format) –
非常感謝! 'reshape'對我很好用 – Nala