У меня есть фрейм данных с несколькими дубликатами, которые я хочу удалить, учитывая определенное условие.
У меня есть столбец (column_A), который содержит результат анализа. Некоторые из идентификаторов в моем фрейме данных имеют два результата, и именно так происходит дублирование идентификаторов. Я хочу сохранить строку, где column_A == «analysisB», если идентификатор в «id_no» содержит как «analysisA», так и «analysisB» в column_A, в противном случае не удаляйте строку.
(Обратите внимание, что исходный фрейм данных, на котором я запускаю это, имеет несколько других символьных и числовых столбцов)
Фиктивные данные:
structure(list(id_no = structure(c(1L, 2L, 2L, 3L, 4L, 4L), .Label = c("A",
"B", "C", "D"), class = "factor"), column_A = structure(c(1L,
1L, 2L, 2L, 1L, 2L), .Label = c("analysisA", "analysisB"), class = "factor")), .Names = c("id_no",
"column_A"), row.names = c(NA, -6L), class = "data.frame")
Что выглядит так:
id_no column_A
A analysisA
B analysisA
B analysisB
C analysisB
D analysisA
D analysisB
Ожидаемый результат:
id_no column_A
A analysisA
B analysisB
C analysisB
D analysisB
Есть ли способ сделать это с помощью dplyr? У меня не получилось правильно работать с условной фильтрацией с помощью filter ().