是否有R函数从具有关联的列和行标题的矩阵中提取数据?

时间:2019-09-05 05:04:40

标签: r

我想从矩阵中提取所有距离变量,以及每个变量的行名和标题,以便最终得到 3列数据:row1, heading1, 1stdatapoint

我能够将距离数据提取到矢量,但是无法提取每个点的关联行和航向信息。

Gen.v<-c(Gen.mat)

2 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么您想从矩阵创建一个3列的数据框,其中第一个是行名,第二个是列名,第三个是值。我们可以使用rowcol函数来做到这一点,以获取矩阵中每个元素的行索引和列索引,并分别获取对应的rownamescolnames

data.frame(row = rownames(Gen.mat)[c(row(Gen.mat))], 
           col = colnames(Gen.mat)[c(col(Gen.mat))], 
           value = c(Gen.mat))

#   row  col value
#1 row1 col1     1
#2 row2 col1    11
#3 row1 col2     2
#4 row2 col2    12
#5 row1 col3     3
#6 row2 col3    13

Gen.mat

Gen.mat <- structure(c(1, 11, 2, 12, 3, 13), .Dim = 2:3, .Dimnames = list(
c("row1", "row2"), c("col1", "col2", "col3")))

Gen.mat
#     col1 col2 col3
#row1    1    2    3
#row2   11   12   13

答案 1 :(得分:0)

我们可以通过melt

轻松完成此操作
library(reshape2)
melt(Gen.mat)
#.  Var1 Var2 value
#1 row1 col1     1
#2 row2 col1    11
#3 row1 col2     2
#4 row2 col2    12
#5 row1 col3     3
#6 row2 col3    13

数据

Gen.mat <- structure(c(1, 11, 2, 12, 3, 13), .Dim = 2:3, .Dimnames = list(
 c("row1", "row2"), c("col1", "col2", "col3")))