I have a dataframe in which I want to filter to rows where at least one of 3 different columns has value "D"
Sample df:
| identifier | def | abc | ghi |
|---|---|---|---|
| 1 | D | C | A |
| 2 | A | D | D |
| 3 | B | C | A |
| 4 | A | D | A |
I want my output to be:
| identifier | def | abc | ghi |
|---|---|---|---|
| 1 | D | C | A |
| 2 | A | D | D |
| 4 | A | D | A |
I would like to use dplyr filter() but couldn't find how to filter to exactly what I need
CodePudding user response:
With if_any:
library(dplyr)
dat %>%
filter(if_any(-identifier, ~ .x == "D"))
identifier def abc ghi
1 1 D C A
2 2 A D D
3 4 A D A
CodePudding user response:
Using base R
subset(df1, rowSums(df1[-1] == "D") > 0)
-output
identifier def abc ghi
1 1 D C A
2 2 A D D
4 4 A D A
