有任何简单的方法可以将“表”转换为“矩阵”吗?

时间:2020-01-08 15:22:18

标签: r matrix data-conversion

例如,我有一个表tb

tb <- table(mtcars[c("carb","cyl")])
> tb
    cyl
carb 4 6 8
   1 5 2 0
   2 6 0 4
   3 0 0 3
   4 0 4 6
   6 0 1 0
   8 0 0 1

其中

> class(tb)
[1] "table"

我想知道是否有更直接的方法将tbtable转换为matrix,即

mtb <- as.matrix(as.data.frame.matrix(tb))

这样

> mtb
  4 6 8
1 5 2 0
2 6 0 4
3 0 0 3
4 0 4 6
6 0 1 0
8 0 0 1

> class(mtb)
[1] "matrix"

这就是我所做的转换,但是由于同时使用as.matrix()as.data.frame.matrix(),因此我认为这并不简单。

提前感谢!

2 个答案:

答案 0 :(得分:5)

您可以这样做:

unclass(table(mtcars[c("carb","cyl")]))

检查班级:

class(unclass(table(mtcars[c("carb","cyl")])))

[1] "matrix"

答案 1 :(得分:0)

尝试一下:

m = matrix(data = tb,nrow = nrow(tb),ncol = ncol(tb),byrow = FALSE,dimnames = list(c(1,2,3,4,6,8),c(4,6,8)))