Я хотел бы создать DataFrame с доверительными интервалами для пропорций в качестве конечного результата. Я ввел переменную (tp в моем примере) в качестве значения обрезания для вычисления пропорций для. Я хотел бы использовать пакет dplyr для создания окончательного фрейма данных. Ниже приведен упрощенный пример:подсчеты сгруппированных переменных с использованием dplyr
library(dplyr)
my_names <- c("A","B")
dt <- data.frame(
Z = sample(my_names,100,replace = TRUE),
X = sample(1:10, replace = TRUE),
Y = sample(c(0,1), 100, replace = TRUE)
)
my.df <- dt%>%
mutate(tp = (X >8)* 1) %>% #multiply by one to convert into numeric
group_by(Z, tp) %>%
summarise(n = n()) %>%
mutate(prop.tp= n/sum(n)) %>%
mutate(SE.tp = sqrt((prop.tp*(1-prop.tp))/n))%>%
mutate(Lower_limit = prop.tp-1.96 * SE.tp)%>%
mutate(Upper_limit = prop.tp+1.96 * SE.tp)
output:
Source: local data frame [4 x 7]
Groups: Z
Z tp n prop.tp SE.tp Lower_limit Upper_limit
1 A 0 33 0.6346154 0.08382498 0.4703184 0.7989123
2 A 1 19 0.3653846 0.11047236 0.1488588 0.5819104
3 B 0 27 0.5625000 0.09547033 0.3753782 0.7496218
4 B 1 21 0.4375000 0.10825318 0.2253238 0.6496762
Тем не менее, я хотел бы вычислить стандартную ошибку и CI: с с помощью общей выборки для групп в колонке Z, а не расщепленный образец категориальной переменной ф. Итак, общий образец для A в моем примере должен быть n = 33 +19. Любые идеи?
закрыть, я хотел посмотреть пропорции A и B, где X> 8, хотя ... любые идеи – jonas
Возможно, обновленный ответ - это то, что вы хотите. Чтобы преобразовать 'tp' в числовой, я предлагаю вам использовать' as.integer' вместо умножения с 1, так как тогда легче понять цель операции. – Backlin
Спасибо! Ваше первое предложение - это то, что я ищу ... – jonas