r - 从n x m矩阵转换为R中的长矩阵

标签 r matrix reshape reshape2

这个问题在这里已经有了答案:





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/

相关文章:

r - dplyr 在 for 循环内突变 - 问题

C# 轻量级方法来存储具有快速访问的大位矩阵

algorithm - 如何找到每行都包含一个值的所有矩阵列集?

python - reshape Pandas 数据框

python - 用 pandas reshape 数据框

python - 如何通过索引将数组插入到现有的多维数组中? [Python]

r - "get_int_parms"不适用于包 "glmnet"的 .Fortran()

R gsub/str_replace 返回反斜杠

r - lm的内存问题

Android NDK 包含 Eigen