У меня есть фрейм данных, который выглядит следующим образом:
Status ID
A 1
B 1
B 1
A 1
B 1
A 1
A 2
A 2
A 2
A 2
B 3
B 3
B 3
Чтобы проиллюстрировать мой желаемый результат, пожалуйста, посмотрите ниже:
Status ID
B 1
B 1
B 1
A 2
A 2
A 2
A 2
B 3
B 3
B 3
Как видите,Единственное, что меняется, это для группы с идентификатором = 1. Если группа содержит статус «A» и «B», я бы хотела удалить статус «A».
Однако идентификатор группы 2 и3 не изменился (т.е. не было удалено ни одной строки), потому что: если каждый идентификатор группы содержит только «A», то он останется прежним.Аналогичным образом, если каждый идентификатор группы содержит только «B», он также останется прежним.Следовательно, оба остаются неизменными.
Используя dplyr, это моя попытка:
library(dplyr)
df1_clean <- df1 %>% group_by(ID, Status)
%>% filter(ifelse((Status == A | Status == B), Status == B,
ifelse((Status == A), Status == A,
ifelse((Status == B), Status == B))))
Однако этот фильтр не будет работать.Любая помощь будет оценена!