繁体   English   中英

在n中从nxm矩阵转换为长矩阵

[英]Convert from n x m matrix to long matrix in R

注意:这不是图形问题。

我有一个nxm矩阵:

> m = matrix(1:6,2,3)
> m
  a  b  c
d 1  2  3
e 4  5  6

我想将其转换为长矩阵:

> m.l
a d 1
a e 4
b d 2
b e 5
c d 3
c e 6

显然嵌套for循环可以工作,但我知道有很多很好的工具可以在R中重构矩阵。到目前为止,我只发现了从长矩阵或宽矩阵转换为nxm矩阵的文献,而不是相反。 我错过了一些明显的东西吗 我该怎么做这个转换?

谢谢!

如果您需要单个列矩阵

 matrix(m, dimnames=list(t(outer(colnames(m), rownames(m), FUN=paste)), NULL))
 #    [,1]
 #a d    1
 #a e    4
 #b d    2
 #b e    5
 #c d    3
 #c e    6

对于data.frame输出,可以使用meltreshape2

 library(reshape2)
 melt(m)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM