use*_*872 9 r matrix reshape reshape2
注意:这不是图形问题.
我有一个nxm矩阵:
> m = matrix(1:6,2,3)
> m
a b c
d 1 2 3
e 4 5 6
Run Code Online (Sandbox Code Playgroud)
我想将其转换为长矩阵:
> m.l
a d 1
a e 4
b d 2
b e 5
c d 3
c e 6
Run Code Online (Sandbox Code Playgroud)
显然嵌套for循环可以工作,但我知道有很多很好的工具可以在R中重构矩阵.到目前为止,我只发现了从长矩阵或宽矩阵转换为nxm矩阵的文献,而不是相反.我错过了一些明显的东西吗 我该怎么做这个转换?
谢谢!
akr*_*run 13
如果您需要单个列矩阵
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
Run Code Online (Sandbox Code Playgroud)
对于data.frame输出,您可以使用meltfromreshape2
library(reshape2)
melt(m)
Run Code Online (Sandbox Code Playgroud)