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