Я пытаюсь рассчитать доверительные интервалы некоторых показателей.Я использую tidyverse и epitools для вычисления КИ по методу Баяра.
Я почти наверняка делаю что-то не так.
library (tidyverse)
library (epitools)
# here's my made up data
DISEASE = c("Marco Polio","Marco Polio","Marco Polio","Marco Polio","Marco Polio",
"Mumps","Mumps","Mumps","Mumps","Mumps",
"Chicky Pox","Chicky Pox","Chicky Pox","Chicky Pox","Chicky Pox")
YEAR = c(2011, 2012, 2013, 2014, 2015,
2011, 2012, 2013, 2014, 2015,
2011, 2012, 2013, 2014, 2015)
VALUE = c(82,89,79,51,51,
79,91,69,89,78,
71,69,95,61,87)
AREA =c("A", "B","C")
DATA = data.frame(DISEASE, YEAR, VALUE,AREA)
# this is a simplification, I have the population values in another table, which I've merged
# to give me the dataframe I then apply pois.byar to.
DATA$POPN = ifelse(DATA$AREA == "A",2.5,
ifelse(DATA$AREA == "B",3,
ifelse(DATA$AREA == "C",7,0)))
# this bit calculates the number of things per area
rates<-DATA%>%group_by(DISEASE,AREA,POPN)%>%
count(AREA)
Тогда, если я хочу рассчитать КИ, я подумал, что это сработает
rates<-DATA%>%group_by(DISEASE,AREA,POPN)%>%
count(AREA) %>%
mutate(pois.byar(rates$n,rates$POPN))
но я получаю
Error in mutate_impl(.data, dots) :
Evaluation error: arguments imply differing number of rows: 0, 1.
Это, однако, работает:
pois.byar(rates$n,rates$POPN)
Кажется глупым сказать: «превратить результаты функции pois.byar вдатафрейм, а затем слить обратно в оригинал ".Возможно, я пытался это сделать, просто чтобы получить некоторые данные .... Я не хочу этого делать.Это не правильный способ делать вещи.
Любой совет, с благодарностью полученный.Я думаю, что это довольно основная проблема.И свидетельствует о том, что я не сижу и не учусь, а пытаюсь делать что-то по ходу дела.
Вот что я хочу Болезнь Год n область popn x pt скорость ниже верхнего уровня conf.level