Trap: filter() keeps rows where the condition is TRUE. Rows with NA in the condition are dropped. SAS where also treats missing as not true for most comparisons.
Worked examples below.
One condition
library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
filter(AVAL > 100) drops rows where AVAL is NA, because NA > 100 is not TRUE. Keep missing values on purpose with is.na(AVAL) | AVAL > 100 when that is the rule.