【发布时间】:2019-09-06 10:39:45
【问题描述】:
我有一个大的 n x m 矩阵,我想将它转换为 (n * m) x 3 数据框(我的矩阵类似于 1400 x 800)。数据框的第一列应包含矩阵行索引。第二列应包含矩阵列索引,数据框的第三列应包含矩阵中每个单元格的值。
我用 for 循环解决了这个问题,但我认为这不是最好的方法。我想知道是否有更简单或更有效的方法来实现相同的最终数据帧。
这是我想改进的解决方案的一个可重现的小代码。
mtx <- array(rep(rnorm(12)), dim = c(4,3))
df <- expand.grid(rnum = 1:4, cnum = 1:3)
df$cell <- NA
for (i in 1:nrow(df)){
df$cell[i] <- mtx[df$rnum[i],df$cnum[i]]
}
【问题讨论】:
标签: r