将具有暗名的矩阵转换为长格式data.frame [英] Convert a matrix with dimnames into a long format data.frame

查看:46
本文介绍了将具有暗名的矩阵转换为长格式data.frame的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

希望这里有一个简单的答案,但我在任何地方都找不到.

Hoping there's a simple answer here but I can't find it anywhere.

我有一个包含行名和列名的数字矩阵:

I have a numeric matrix with row names and column names:

#      1    2    3    4
# a    6    7    8    9
# b    8    7    5    7
# c    8    5    4    1
# d    1    6    3    2

我想将矩阵融化为长格式,将值放在一列中,并将矩阵行和列名分别在一列中.结果可能是这样的 data.table data.frame :

I want to melt the matrix to a long format, with the values in one column and matrix row and column names in one column each. The result could be a data.table or data.frame like this:

#  col  row  value
#    1    a      6
#    1    b      8
#    1    c      8
#    1    d      1
#    2    a      7
#    2    c      5
#    2    d      6
    ...

任何提示都值得赞赏.

推荐答案

使用reshape2中的融化:

Use melt from reshape2:

library(reshape2)
#Fake data
x <- matrix(1:12, ncol = 3)
colnames(x) <- letters[1:3]
rownames(x) <- 1:4
x.m <- melt(x)
x.m

   Var1 Var2 value
1     1    a     1
2     2    a     2
3     3    a     3
4     4    a     4
...

这篇关于将具有暗名的矩阵转换为长格式data.frame的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆