Я пытаюсь получить количество встреч, которые пациент имел на основании дат. Это необходимо в R и с библиотекой Tidyverse. Пример набора данных здесь:
structure(list(person_id = c(1, 2, 2, 3, 3, 3), arrival = c("2020-01-01 08:00:00",
"2020-01-01 09:00:00", NA, "2020-01-01 10:00:00", NA, NA), completed = c("2020-01-01 9:00:00",
"2020-01-01 11:00:00", NA, "2020-01-01 11:00:00", NA, NA), admitted = c(NA,
NA, "2020-01-01 11:00:00", NA, "2020-01-01 11:00:00", "2020-01-09 11:00:00"
), discharged = c(NA, NA, NA, NA, "2020/01/02 12:00:00", "2020-01-13 12:00:00"
), encounter_number = c(1, 2, 3, 4, 5, 6)), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
И пример набора данных в качестве вывода с новым столбцом, который я хочу, будет выглядеть следующим образом:
structure(list(person_id = c(1, 2, 2, 3, 3, 3), arrival = c("2020-01-01 08:00:00",
"2020-01-01 09:00:00", NA, "2020-01-01 10:00:00", NA, NA), completed = c("2020-01-01 9:00:00",
"2020-01-01 11:00:00", NA, "2020-01-01 11:00:00", NA, NA), admitted = c(NA,
NA, "2020-01-01 11:00:00", NA, "2020-01-01 11:00:00", "2020-01-09 11:00:00"
), discharged = c(NA, NA, NA, NA, "2020/01/02 12:00:00", "2020-01-13 12:00:00"
), encounter_number = c(1, 2, 3, 4, 5, 6), person_total_encounter = c(1,
1, 2, 1, 2, 1)), row.names = c(NA, -6L), class = c("tbl_df",
"tbl", "data.frame"))
Caveats !!
Как вы можете видеть, человек с person_id номер 2 прибывает в AE и заполняется из AE, а затем сразу же поступает в больницу, но без даты выписки. Но все же я даю общее количество встреч, добавляя до 2, один для AE и один для стационарного, опять же даже без даты выписки. Кроме того, человек с person_id 3 допускается дважды в разные даты, но общее количество встреч составляет до 2, а затем 1 для последнего приема. Может кто-то помочь мне с этим?