Добавить сумму столбца в таблицу
Структура данных:
Company Marital
a single
a married
b widow
c married
b single
Я использую table(df$Company,df$Marital)
, но хочу иметь столбец, который показывает итоговое количество строк, например следующее:
a b c Total
married 50 20 5 75
single 10 10 10 30
widow 5 50 0 55
Есть ли другая функция таблицы, которая предоставляет параметр добавления суммы строки?
Ответы
Ответ 1
После этого вы можете использовать cbind
и rowSums
:
tab <- table(df$Company,df$Marital)
tab <- cbind(tab, Total = rowSums(tab))
Вы также можете использовать встроенную функцию addmargins
:
tab <- addmargins(table(df$Company,df$Marital), 2)
(2
означает добавить столбец суммы, но не строку суммы - вы можете опустить его, и вы получите оба).
Ответ 2
Вы можете использовать addmargins
x <- table(df$Company,df$Marital)
addmargins(x) # option 1
ftable(addmargins(x)) # option 2
Ответ 3
library(dplyr)
df <- tribble(
~status, ~a, ~b, ~c,
"married", 50, 20, 5,
"single", 10, 10, 10,
"widow", 5, 50, 0
)
df %>%
mutate(Total_Row = rowSums(.[2:4]))
#> # A tibble: 3 x 5
#> status a b c Total_Row
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 married 50.0 20.0 5.00 75.0
#> 2 single 10.0 10.0 10.0 30.0
#> 3 widow 5.00 50.0 0 55.0
df %>%
mutate(Total_Row = select(., 2:4) %>% rowSums())
#> # A tibble: 3 x 5
#> status a b c Total_Row
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 married 50.0 20.0 5.00 75.0
#> 2 single 10.0 10.0 10.0 30.0
#> 3 widow 5.00 50.0 0 55.0