将矩阵转换为数据帧

时间:2014-07-17 20:57:55

标签: r

这是一个通用的问题,让我们来看看。说我有:

matrix=replicate(5, rnorm(10))

我想要一个包含3列的data.frame:行号,列号,矩阵值。

4 个答案:

答案 0 :(得分:3)

查看一下R Base解决方案的rowcolc函数并尝试这样的事情

df <- data.frame(row=c(row(matrix)), col=c(col(matrix)), value=c(matrix))

答案 1 :(得分:1)

您要找的是melt

内的library(reshape)
melt(matrix)

编辑:改为使用reshape2

答案 2 :(得分:0)

另一个想法:

data.frame(cbind(arrayInd(seq_along(matrix), dim(matrix), useNames = T), 
                 value = c(matrix)))

或者:

tmp = as.data.frame.table(matrix)
tmp[-length(tmp)] = sapply(tmp[-length(tmp)], as.integer)

答案 3 :(得分:-1)

简单的方法就是使用“ as.data.frame”

as.data.frame(matrix)

在[https://www.statmethods.net/management/typeconversion.html]

查看更多转化