создание двусторонней таблицы с итогами в R - PullRequest
0 голосов
/ 19 июня 2020

Мне было интересно, есть ли простой способ создать таблицу, в которой есть столбцы, а также итоги строк?

smoke <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
    colnames(smoke) <- c("High","Low","Middle")
    rownames(smoke) <- c("current","former","never")
    smoke <- as.table(smoke)

Я думал, что это будет очень просто, но решения, которые я нашел до сих пор, кажутся довольно сложными, включая lapply и rbind. Однако это кажется такой тривиальной задачей, что должен быть способ попроще?

вычисленные результаты:

> smoke
        High Low Middle TOTAL
current   51  43     22   116
former    92  28     21   141
never     68  22      9    99
TOTAL    211  93     52    51

Ответы [ 2 ]

3 голосов
/ 19 июня 2020
addmargins(smoke)

addmargins находится в пакете статистики.

0 голосов
/ 19 июня 2020

Вы можете использовать adorn_totals из janitor:

library(janitor)
library(magrittr)

smoke %>%
  as.data.frame.matrix() %>%
  tibble::rownames_to_column() %>%
  adorn_totals(name = 'TOTAL') %>%
  adorn_totals(name = 'TOTAL', where = 'col')

# rowname High Low Middle TOTAL
# current   51  43     22   116
#  former   92  28     21   141
#   never   68  22      9    99
#   TOTAL  211  93     52   356
...