r - 将矩阵转换为三列data.frame

标签 r matrix dataframe reshape

我有矩阵:

     var1 var2
row1   1   2
row2   3   4


要将其转换为data.frame:

rows vars values
row1 var1   1
row1 var2   2
row2 var1   3
row2 var2   4


最好的方法是什么?

最佳答案

您可以使用melt

library(reshape2)
setNames(melt(m1), c('rows', 'vars', 'values'))
#  rows vars values
#1 row1 var1      1
#2 row2 var1      3
#3 row1 var2      2
#4 row2 var2      4


要么

data.frame(rows=rownames(m1)[row(m1)], vars=colnames(m1)[col(m1)],
                      values=c(m1))
#   rows vars values
#1 row1 var1      1
#2 row2 var1      3
#3 row1 var2      2
#4 row2 var2      4


要么

 as.data.frame(as.table(m1))
 #    Var1 Var2 Freq
 #1 row1 var1    1
 #2 row2 var1    3
 #3 row1 var2    2
 #4 row2 var2    4


数据

m1 <- structure(c(1L, 3L, 2L, 4L), .Dim = c(2L, 2L), .Dimnames = list(
c("row1", "row2"), c("var1", "var2")))

关于r - 将矩阵转换为三列data.frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26838760/

相关文章:

python - 将嵌套 json 解压到数据框中的有效方法

r - 如何在不同行中显示组名时聚合 data.frame

python - Pandas 在 read_csv 中跳过行,我可以将这些记录到变量/日志文件中吗

r sqldf 转义双引号

OpenGL,世界到对象坐标映射? (逆矩阵)

python - 在 Python 中创建矩阵

matlab - 如何在 MATLAB 中使用 2-D 掩码索引 3-D 矩阵?

r - 使用 R/ggplot2 控制中间值颜色

r - R中同一时间序列图有多种颜色,可能吗?

r - 在knitr中指定多种同时输出格式(新)