如果我有一个矩阵,如
A B F
1 .5 .25 .4
2 .25 .3 .1
3 .15 .2 .3
我希望创建一些数据框的形式,例如
1 A .5
2 A .25
3 A .15
1 B .25
2 B .3
等。我试过使用重塑包没有运气,并想知道是否有办法在R中做到这一点。
答案 0 :(得分:0)
您可以利用R中的矩阵实际上只是应用了dim
(即维度)属性的向量这一事实。
在下面的示例中,我假设您有一个矩阵,其中名为维度,如您的问题所示。
mat <- matrix(1:9, 3, 3, dimnames=list(1:3,c("A","B","F")))
# A B F
# 1 1 4 7
# 2 2 5 8
# 3 3 6 9
# get names of dimensions
rows <- as.numeric(rownames(mat))
cols <- colnames(mat)
# reshape
dat <- data.frame( row=rep(rows, times=ncol(mat)),
col=rep(cols, each=nrow(mat)),
value=as.vector(mat) )
# row col value
# 1 1 A 1
# 2 2 A 2
# 3 3 A 3
# 4 1 B 4
# 5 2 B 5
# 6 3 B 6
# 7 1 F 7
# 8 2 F 8
# 9 3 F 9