Вы действительно должны указать, что вы подразумеваете под доверительными интервалами, но при условии, что вам нужны биномиальные доверительные интервалы для пропорций, это не обязательно симпатично, но оно работает. Возьмите его в качестве отправной точки и адаптироваться к вашим потребностям:
ci.table <- function(tbl, margin = NULL) {
binom_ci <- function(x, n) {
paste(round(binom.test(x, n)$conf.int, 3), collapse = " - ")
}
sweep_ci <- function(xx, nn) { mapply(FUN = binom_ci, xx, nn) }
if (length(margin))
result <- sweep(tbl, margin, margin.table(tt, margin),
"sweep_ci", check.margin = FALSE)
else
result <- sweep_ci(tbl, sum(tbl))
dim(result) <- dim(tbl)
as.table(result)
}
binom_ci
функция обрабатывает форматирование. Я не особенно люблю «х - у» для доверительных интервалов, но я обнаружил, что большинство людей понимают это лучше, чем, например, «(х, у)» ...
MWE:
ddff <- data.frame(
A = sample(c("A", "B", "C"), 20, replace = TRUE),
B = sample(c("C", "D"), 20, replace = TRUE)
)
tt <- table(ddff$A, ddff$B)
ci.table(tt)
ci.table(tt, 1)
ci.table(tt, 2)
Я думаю, что доверительные интервалы не имеют смысла в контексте частотных таблиц двоичных переменных. Вы можете рассмотреть вопрос о stats.stackexchange.com. Если вы спросите здесь, вы должны, вероятно, сделать воспроизводимый пример, включающий ссылки на пакеты (например, везде, откуда приходит Сводная информация). Некоторые рекомендации: http://stackoverflow.com/a/28481250/ – Frank
Моя ошибка, должна была сказать три уровня. – Kasey