I am trying to filter a dataframe
based on multiple ID
values from a column ID
which has a character
datatype. When I run the code with |
(AND) boolean
I get an error.
How can I fix this in R
using dplyr
Sample data
ID Date Var1 Var2
279557 1/1/2020 1 2
280485 1/2/2020 3 4
279556 1/3/2020 5 6
280484 1/4/2020 7 8
267254 1/5/2020 9 10
290512 1/6/2020 11 12
Code
library(dplyr)
df = df%>%
filter(df, ID== '279557' | ID == '280485' | ID == '279556' | ID == '280484')
Error:
x Input `..1$ID` must be a logical vector, not a character.
I know I can create a dataframe
of the target IDs
and do something like shown below.
Is this the only way doing this with dplyr::filter
and boolean
conditions?
target = c("29557", "280485", "279556", "280484")
df = df%>%
filter(df$ID %in% target)
CodePudding user response:
I think you do not need to reference the dataframe in the call to filter
:
df <- data.frame(
ID = 1:10
)
df = df %>%
filter(ID== '1' | ID == '5' | ID == '9')
df
ID
1 1
2 5
3 9