Reemplazar el valor dado en el vector

Estoy buscando una función que reemplace todas las apariciones de un valor con otro valor. Por ejemplo, me gustaría reemplazar todos los ceros con unos. No quiero tener que almacenar el resultado en una variable, pero quiero poder usar el vector de forma anónima como parte de una expresión más grande.

Sé cómo escribir una función adecuada yo mismo:

> vrepl <- function(haystack, needle, replacement) {
+   haystack[haystack == needle] <- replacement
+   return(haystack)
+ }
> 
> vrepl(c(3, 2, 1, 0, 4, 0), 0, 1)
[1] 3 2 1 1 4 1

Pero me pregunto si hay alguna función estándar para hacer este trabajo, preferiblemente desde elbase&nbsp;paquete, como alternativa de algún otro paquete comúnmente utilizado. Creo que el uso de tal estándar probablemente hará que mi código sea más legible, y no tendré que redefinir esa función donde la necesite.