Hi,
I found a workaround in this post that can be adapted to your problem:
library("dplyr")
#Fake data
myData = data.frame(a = 1:10, b = 1:10, c = LETTERS[1:10], d = 1:10, e = letters[1:10], stringsAsFactors = F)
#Filtering
myData %>% select_if(function(col) all(col == .$e) | is.numeric(col))
a b d e
1 1 1 1 a
2 2 2 2 b
3 3 3 3 c
4 4 4 4 d
5 5 5 5 e
6 6 6 6 f
7 7 7 7 g
8 8 8 8 h
9 9 9 9 i
10 10 10 10 j
However .... I'm not happy with the way that code looks and tried a long time to get a more elegant solution but tidyverse is not letting me 
This works individually:
myData %>% select_if(is.numeric)
a b d
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
7 7 7 7
8 8 8 8
9 9 9 9
10 10 10 10
myData %>% select_if(names(.) == "e")
e
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
10 j
But NOT combined ...
myData %>% select_if(names(.) == "c" | is.numeric) # ERROR
myData %>% select_if(names(.) == "c" | is.numeric(.)) # Only column c output
myData %>% select_if(function(col) names(col) == "e" | is.numeric(col)) # ERROR
So I'm hoping for a tidyverse expert here to explain what I'm doing wrong...
At least you have something that works meanwhile 
PJ