1) prop.table prop.table
может быть полезным здесь. Мы используем ave
, чтобы применять его отдельно к строкам данных и сводок.
transform(df, Percent = 100 * ave(Freq, Var1 == "Sum", FUN = prop.table))
дает:
Var1 Freq Percent
1 3 15 46.875
2 4 12 37.500
3 5 5 15.625
4 <NA> 0 0.000
5 Sum 32 100.000
2) пакет таблиц Если целью этого является отображение указанной таблицы, то пакет таблиц хорош. Термины LHS формулы относятся к строкам, а RHS относятся к столбцам.
library(tables)
gear <- factor(mtcars$gear)
tab <- tabular(gear + 1 ~ (n=1) + Percent())
дает:
> tab
gear n Percent
3 15 46.88
4 12 37.50
5 5 15.62
All 32 100.00
Вывод HTML и LaTeX теперь может производиться с использованием html(tab)
и latex(tab)
.
Этот подход больше ориентирован на отображение, но если вы действительно хотите извлечь данные, это можно сделать следующим образом:
m <- as.matrix(tab, format = as.numeric)
dimnames(m) <- list(attr(tab, "rowLabels"), attr(tab, "colLabels"))