почему пример заболеваемости, взятый из литературы, больше не работает? - PullRequest
0 голосов
/ 17 марта 2020

Я использовал эту статью, чтобы воспроизвести сюжеты. Это сработало очень просто. Сегодня я пытался использовать тот же код, и он больше не работал, и я не знаю почему ... Я проверил код, и все в порядке ...

код:

library('outbreaks')

dat1 <- ebola_sim_clean$linelist
str(dat1, strict.width = "cut", width = 76)

## 'data.frame':      5829 obs.  of  9 variables:
##  $ case_id                   : chr  "d1fafd" "53371b" "f5c3d8" "6c286a" ...
##  $ generation                : int  0 1 1 2 2 0 3 3 2 3 ...
##  $ date_of_infection         : Date, format: NA "2014-04-09" ...
##  $ date_of_onset             : Date, format: "2014-04-07" "2014-04-15" ...
##  $ date_of_hospitalisation   : Date, format: "2014-04-17" "2014-04-20" ...
##  $ date_of_outcome           : Date, format: "2014-04-19" NA ...
##  $ outcome                   : Factor w/ 2 levels "Death","Recover": NA NA 2 ..
##  $ gender                    : Factor w/ 2 levels "f","m": 1 2 1 1 1 1 1 1 2 ..
##  $ hospital                  : Factor w/ 5 levels "Connaught Hospital",..: 2 ..

library('incidence')
library('ggplot2')

# compute weekly stratified incidence
i.7.group <- incidence(dat1$date_of_onset, interval = 7, groups = dat1$hospital)
# print incidence object
i.7.group

## <incidence object>
## [5829 cases from days 2014-04-07 to 2015-04-27]
## [5829 cases from ISO weeks 2014-W15 to 2015-W18]
## [6 groups: Connaught Hospital, Military Hospital, other,
##  Princess Christian Maternity Hospital (PCMH), Rokupa Hospital, NA]
##
## $counts: matrix with 56 rows and 6 columns
## $n: 5829 cases in total
## $dates: 56 dates marking the left-side of bins
## $interval: 7 days
## $timespan: 386 days
## $cumulative: FALSE

# plot incidence object
my_theme <- theme_bw(base_size = 12) +
  theme(panel.grid.minor = element_blank()) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5, color = "black"))

plot(i.7.group, border = "white") +
  my_theme +
  theme(legend.position = c(0.8, 0.75))

график, который я должен получить enter image description here

график, который я получаю: enter image description here сообщение об ошибке:

Warning message:
position_stack requires non-overlapping x intervals

Я использую ggplot2 версии 3.3.0

Как вы думаете? Как я могу это исправить?

1 Ответ

0 голосов
/ 18 марта 2020

Я провел несколько экспериментов с вашим кодом, и, скорее всего, ошибка связана с обновлением пакета. Я заметил, что пакет обрабатывает ваши данные по-разному в зависимости от размера выбранного вами интервала дней.

При выполнении этой строки

i.7.group <- incidence(dat1$date_of_onset, interval = 7, groups = dat1$hospital)

Ось у будет помечена: " ISO еженедельная заболеваемость », которая также отличается от вашего примера, который работал.

Теперь, если я изменю интервал на 6 или 8, он будет давать другую метку для оси y, например:« Частота по периоду x дней ", и он будет отображаться нормально.

Кажется, что новая функция была добавлена ​​или изменена в пакете, и она не работает должным образом.

В качестве временного исправления, пока не может быть выполнена дальнейшая отладка (или, возможно, вы понизили свой пакет), если это вас устраивает, вы можете использовать интервал 6 или 8 дней. Это будет сюжет, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...