这是一个通用的问题,让我们来看看。说我有:
matrix=replicate(5, rnorm(10))
我想要一个包含3列的data.frame:行号,列号,矩阵值。
答案 0 :(得分:3)
查看一下R Base解决方案的row
,col
和c
函数并尝试这样的事情
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]
查看更多转化