Filtering with filter

The filter verb can be used to extract a subset of rows matching the filter criteria, as shown:

# Filter states with < 1% Illiteracy (i.e., > 99% literacy) 
filter(tstate, Illiteracy < 1) # Equivalently -> filter(tstate, (100 - Illiteracy) > 99) 
 
# Filter states with < 1% Illiteracy and Income > the mean Income of all states 
# We will apply the AND condition using & 
 
filter(tstate, Illiteracy < 1 & Income > mean(Income)) 
 
# This is the same as using , (comma), multiple parameters are treated as AND 
 
identical(filter(tstate, Illiteracy < 1 & Income > mean(Income)),filter(tstate, Illiteracy < 1, Income > mean(Income))) 
# [1] TRUE 
 
# Filter states with Income > the mean Income of all states OR HS Graduation Rate > 60% 
# We will apply the OR condition using | 
 
filter(tstate, Income > mean(Income) | `HS Grad` > 60) 
 
# Filter for states in the West Region and the above condition (Income > the mean Income of all states OR HS Graduation Rate > 60%) 
 
filter(tstate, (Income > mean(Income) | `HS Grad` > 60) & Region=="West") 
 
# Other related verbs include filter_all, filter_if and filter_at 
# An example for each is given below 
 
# Print names of all numeric column 
filter_all(tstate, all_vars(class(.)=="numeric")) 
 
 
# Filter if ALL row values > 1 using all_vars 
select_if(tstate, is.numeric) %>% filter_all(all_vars(. > 1)) # When all vars > 1 
 
# Filter if ANY row values > 4000 using any_vars 
select_if(tstate, is.numeric) %>% filter_all(any_vars(. > 4000)) # When any vars > 4000  

There are various other ways that filter can be used and more details can be found at the online resources for the same.