dplyr – Aplicar uma funcao a um dataframe R

Olá,

criei uma funcao para verificar automaticamente se o valor de uma coluna está contido em uma lista. Eu poderia fazer dplyr::mutate + dplyr::ifelse, mas como sao para muitas colunas, ficaria um código muito longo. A funcao funciona fora do mutate, mas nao nele.

O que eu fiz:

see_if_succed <- function(x,y){
  
  if (x %in% y) {
    1
  } else {
    0
  }
  
}

Fora do pipe a funcao funciona:

succeed <- c(1,5,8,9)
see_if_succed(100,succeed)
#0

Mas dentro do pipe nao:

succeed <- c(1,5,8,9)
a <- c("A","B", "C")
b <- c(1,2,1)

y <- data.frame(a,b)  

y %>%
  mutate(z = see_if_succed(b, succeed))
# a b z
# 1 A 1 1
# 2 B 2 1
# 3 C 1 1
# Warning message:
#   Problem with `mutate()` input `z`.
# i the condition has length > 1 and only the first element will be used
# i Input `z` is `see_if_succed(b, succeed)`.

Alguém poderia me dizer como eu faco para essa funcao funcionar em um dataframe?
Obrigada!