Р: Как отфильтровать с двумя условиями одного столбца? - PullRequest
0 голосов
/ 27 октября 2018

Например, у меня есть три столбца -ID столбец, столбец посещений, столбец наркотиков.Столбец Drug имеет символьные значения A, B, C и D. Проблема заключается в том, что каждый идентификатор имеет только комбинацию A или B или C или D OR из A и B.

ID  Visit Drug 
1   1       A
1   2       B
1   3       A
2   1       B
2   2       B
3   1       C
3   2       C

Так что если яхотите отфильтровать идентификатор, содержащий ТОЛЬКО лекарство B (в нем не может быть и A, и B), как это отфильтровать?Исходя из вышесказанного, я хочу только идентификатор 2, но НЕ идентификатор 1, потому что идентификатор 1 имеет и A, и B.

Я пробовал этот код, но он дает неправильный результат

df %>% 
group_by(id) %>% 
filter(drug == "B" | drug != "A" & drug != "B" )

Любая помощь будетоценен !!

1 Ответ

0 голосов
/ 27 октября 2018

В этом случае вы должны задать условие для всего вектора Drug, например, all в следующем:

df %>% group_by(ID) %>% filter(all(Drug == "B"))
# A tibble: 2 x 3
# Groups:   ID [1]
#      ID Visit Drug 
#   <int> <int> <fct>
# 1     2     1 B    
# 2     2     2 B  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...