Фильтровать по обоим значениям в группе по - PullRequest
0 голосов
/ 24 апреля 2019

Я хотел бы отфильтровать 2 совпадающих значения столбца на основе группы по условию. Например, из набора данных пациентов я должен сопоставить оба типа VisitType 1 и 2, сгруппированные по идентификатору пациента.

Пока что я использую следующий код.

patients %>% group_by(PatientID) %>% filter(VisitType == "6" and VisitType == "7")

Это, однако, ничего не возвращает (я думаю, это потому, что VisitType 6 и 7 - это разные строки). Есть ли способ фильтрации такой, что я получаю что-то вроде ниже:

PatientID     VisitType 
1                6
1                7
39               6
39               7

1 Ответ

1 голос
/ 24 апреля 2019

Вам не нужен group_by() просто фильтр и упорядочить, если он уже не будет в форме, которую хотите.


patients %>%
  filter(VisitType %in% c(6,7)) %>%
  arrange(PatientID) # optional

Если вы хотите видеть только пациентов, у которых есть оба значения VisitType == 6 && VisitType == 7, то вы должны сделать что-то вроде

patients %>%
  filter(VisitType %in% c(6,7)) %>%
  group_by(PatientID) %>%
  filter(n() >= 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...