У меня есть следующие данные:
events <- structure(list(ID = structure(c(7L, 7L, 7L, 7L, 5L, 5L, 5L, 6L,
6L, 6L, 8L, 8L, 9L, 9L, 10L, 10L, 1L, 2L, 3L, 4L), .Label = c("ST10273049951.90",
"ST10273085397.90", "ST10273204081.90", "ST10273262134.90", "ST10273679485.90",
"ST10274019056.90", "ST10274109968.90", "ST10274426483.90", "ST10274430159.90",
"ST10274433406.90"), class = "factor"), TVTProcedureStartDate = structure(c(2L,
2L, 2L, 2L, 1L, 1L, 1L, 9L, 9L, 9L, 6L, 6L, 8L, 8L, 7L, 7L, 4L,
5L, 10L, 3L), .Label = c("11/6/2015", "12/15/2016", "12/16/2014",
"5/20/2014", "6/17/2014", "6/30/2017", "7/18/2017", "7/6/2017",
"9/13/2016", "9/9/2014"), class = "factor"), DCDate = structure(c(1L,
1L, 1L, 1L, 2L, 2L, 2L, 10L, 10L, 10L, 7L, 7L, 6L, 6L, 8L, 8L,
4L, 5L, 9L, 3L), .Label = c("1/1/2017", "11/15/2015", "12/22/2014",
"5/23/2014", "6/29/2014", "7/15/2017", "7/5/2017", "8/3/2017",
"9/13/2014", "9/22/2016"), class = "factor"), CE_EventOccurred = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = "Yes", class = "factor"), CE_EventDate = structure(c(4L,
6L, 7L, 8L, 2L, 3L, 1L, 18L, 19L, 20L, 11L, 14L, 15L, 16L, 12L,
13L, 9L, 10L, 17L, 5L), .Label = c("11/10/2015", "11/6/2015",
"11/8/2015", "12/15/2016", "12/16/2014", "12/16/2016", "12/21/2016",
"12/23/2016", "5/20/2014", "6/23/2014", "6/30/2017", "7/18/2017",
"7/22/2017", "7/3/2017", "7/7/2017", "7/9/2017", "9/10/2014",
"9/13/2016", "9/14/2016", "9/16/2016"), class = "factor"), Annular.Dissection..In.Hospital. = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Aortic.Dissection..In.Hospital. = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L), .Label = c("0", "E008"), class = "factor"), Atrial.Fibrillation..In.Hospital. = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 1L, 1L), .Label = c("0", "E006"), class = "factor"), Bleeding.at.Access.Site..In.Hospital. = structure(c(1L,
1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("0", "E017"), class = "factor"), Cardiac.Arrest..In.Hospital. = structure(c(1L,
1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L), .Label = c("0", "E005"), class = "factor"), Conduction.Native.Pacer.Disturbance.Req.ICD..In.Hospital. = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 1L), .Label = c("0", "E040"), class = "factor"), Conduction.Native.Pacer.Disturbance.Req.Pacer..In.Hospital. = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("0", "E039"), class = "factor"), Endocarditis..In.Hospital. = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), GI.Bleed..In.Hospital. = c(0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Hematoma.at.Access.Site..In.Hospital. = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Ischemic.Stroke..In.Hospital. = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 1L), .Label = c("0", "E011"), class = "factor"), Major.Vascular.Complications..In.Hospital. = structure(c(1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("0", "E041"), class = "factor"), Minor.Vascular.Complication..In.Hospital. = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Mitral.Leaflet.Injury...detected.during.surgery..In.Hospital. = structure(c(2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("0", "E045"), class = "factor"), Mitral.Subvalvular.Injury..detected.during.surgery..In.Hospital. = structure(c(2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("0", "E047"), class = "factor"), New.Requirement.for.Dialysis..In.Hospital. = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Other.Bleed..In.Hospital. = structure(c(1L, 2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L,
1L, 1L), .Label = c("0", "E022"), class = "factor"), Perforation.with.or.w.o.Tamponade..In.Hospital. = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L), .Label = c("0", "E009"), class = "factor"), Retroperitoneal.Bleeding..In.Hospital. = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), Single.Leaflet.Device.Attachment..In.Hospital. = structure(c(2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("0", "E049"), class = "factor"), Unplanned.Other.Cardiac.Surgery.or.Intervention..In.Hospital. = structure(c(1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("0", "E031"), class = "factor"), Unplanned.Vascular.Surgery.or.Intervention..In.Hospital. = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L), .Label = c("0", "E032"), class = "factor")), class = "data.frame", row.names = c(NA,
-20L))
Существует одна или несколько записей для одного и того же пациента с разными событиями или одинаковыми событиями в разные даты. Мне нужно как-то сгруппировать эти данные по каждому идентификатору и иметь данные только для каждой строки. Теперь некоторые столбцы на самом деле не имеют значения, но важны те, которые являются событиями и имеют (in hospital)
. Когда вы проверите данные, вы увидите, что эти события либо 0
, либо имеют какой-то код, начинающийся с буквы E
. Эти данные могут быть изменены, и вместо кода их следует заменить на 1. То есть, если в нескольких строках присутствует 1 или более одинаковых событий, в отдельных консолидированных строках должно отображаться только 1
.
CE_EventDate
s также должны отображаться в том же столбце через запятую (,).
Я пытался сделать это с помощью dplyr
метода summarise
, который работал нормально, но не мог понять, как сгруппировать по идентификатору и сохранить все столбцы с any
в именах столбцов. Я не уверен, как получить желаемый результат. Что-то вроде следующего.
ID TVTProcedureStartDate DCDate CE_EventOccurred CE_EventDate Annular Dissection (In Hospital) Aortic Dissection (In Hospital) Atrial Fibrillation (In Hospital) Bleeding at Access Site (In Hospital) Cardiac Arrest (In Hospital) Conduction/Native Pacer Disturbance Req ICD (In Hospital) Conduction/Native Pacer Disturbance Req Pacer (In Hospital) Endocarditis (In Hospital) GI Bleed (In Hospital) Hematoma at Access Site (In Hospital) Ischemic Stroke (In Hospital) Major Vascular Complications (In Hospital) Minor Vascular Complication (In Hospital) Mitral Leaflet Injury - detected during surgery (In Hospital) Mitral Subvalvular Injury -detected during surgery (In Hospital) New Requirement for Dialysis (In Hospital) Other Bleed (In Hospital) Perforation with or w/o Tamponade (In Hospital) Retroperitoneal Bleeding (In Hospital) Single Leaflet Device Attachment (In Hospital) Unplanned Other Cardiac Surgery or Intervention (In Hospital) Unplanned Vascular Surgery or Intervention (In Hospital)
ST10274109968.90 12/15/2016 1/1/2017 Yes 12/15/2016,12/16/2016,12/21/2016,12/23/2016 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0
ST10273262134.90 12/16/2014 12/22/2014 Yes 12/16/2014 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Я пытался различными способами group
и summarise
, но ни один из них не дал результатов, которые я ищу, или сгенерировал ошибку из-за синтаксической ошибки. Могли бы помочь с этим. Я играю с этим уже несколько дней