我对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