любой простой способ преобразовать `table` в` matrix`? - PullRequest
1 голос
/ 08 января 2020

У меня есть таблица 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"

Мне интересно, есть ли более простой способ конвертировать tb из * От 1009 * до 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 ]

5 голосов
/ 08 января 2020

Вы можете сделать:

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

Проверить класс:

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

[1] "matrix"
0 голосов
/ 08 января 2020

Попробуйте это:

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)))
...