我想从矩阵中提取所有距离变量,以及每个变量的行名和标题,以便最终得到 3列数据:row1, heading1, 1stdatapoint
我能够将距离数据提取到矢量,但是无法提取每个点的关联行和航向信息。
Gen.v<-c(Gen.mat)
答案 0 :(得分:0)
如果我对您的理解正确,那么您想从矩阵创建一个3列的数据框,其中第一个是行名,第二个是列名,第三个是值。我们可以使用row
和col
函数来做到这一点,以获取矩阵中每个元素的行索引和列索引,并分别获取对应的rownames
和colnames
。
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")))