这个问题在这里已经有了答案:
Create dataframe from a matrix
(6 个回答)
去年关闭。
注意:这不是图表问题。
我有一个 n x m 矩阵:
> 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 中有很多用于 reshape 矩阵的好工具。到目前为止,我只找到关于从长矩阵或宽矩阵转换为 n x m 矩阵而不是相反的文献。我错过了一些明显的东西吗?我该如何进行这种转换?
谢谢!
最佳答案
如果您需要单列矩阵
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 输出,您可以使用
melt
来自 reshape2
library(reshape2)
melt(m)
关于r - 从n x m矩阵转换为R中的长矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30367922/