R 将m×n矩阵转换为n×m×3矩阵

R 将m×n矩阵转换为n×m×3矩阵,r,matrix,distance,R,Matrix,Distance,我现在有一个479 x 729的矩阵,我想把这个矩阵转换成一个三列矩阵,第一列是原始矩阵的行条目,第二列是原始矩阵的列条目,第三列是该列和行条目的值 有没有一个简单的方法可以做到这一点?我已经研究了重塑函数,但还没有弄明白如何在这里应用它。这样做的动机是能够为矩阵中包含其位置的元素创建距离表 可能有更好或更聪明的方法,但这似乎是直截了当且足够快的: m <- matrix(rnorm(349191), 479, 729) row_num <- as.vector(row(m)) c

我现在有一个479 x 729的矩阵,我想把这个矩阵转换成一个三列矩阵,第一列是原始矩阵的行条目,第二列是原始矩阵的列条目,第三列是该列和行条目的值


有没有一个简单的方法可以做到这一点?我已经研究了
重塑
函数,但还没有弄明白如何在这里应用它。这样做的动机是能够为矩阵中包含其位置的元素创建距离表

可能有更好或更聪明的方法,但这似乎是直截了当且足够快的:

m <- matrix(rnorm(349191), 479, 729)

row_num <- as.vector(row(m))
col_num <- as.vector(col(m))
val <- as.vector(m)

new_m <- as.matrix(cbind(row_num, col_num, val))

dim(new_m)
# [1] 349191      3

head(new_m)
#      row_num col_num          val
# [1,]       1       1 1.0839690124
# [2,]       2       1 0.7363313818
# [3,]       3       1 0.0001195304
# [4,]       4       1 0.2123100877
# [5,]       5       1 0.1293427830
# [6,]       6       1 1.1773676868

tail(new_m)
#           row_num col_num         val
# [349186,]     474     729 -0.07942063
# [349187,]     475     729 -0.25694755
# [349188,]     476     729 -0.69421258
# [349189,]     477     729  1.24861689
# [349190,]     478     729  0.24377606
# [349191,]     479     729  0.49150676
m您可以使用:

library(reshape2)
melt(M)

您的矩阵
M
在哪里

您可以粘贴样本数据吗?您已经尝试了什么?你在哪里卡住了?寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。请注意:。此函数似乎不是R的常规发行版的一部分(至少在3.2.3中没有)。你想看哪一个包裹?