Substituir determinado valor no vetor

Estou procurando uma função que substitua todas as ocorrências de um valor por outro valor. Por exemplo, eu gostaria de substituir todos os zeros por uns. Eu não quero ter que armazenar o resultado em uma variável, mas quero poder usar o vetor anonimamente como parte de uma expressão maior.

Eu sei escrever uma função adequada eu mesmo:

> 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

Mas eu estou querendo saber se existe alguma função padrão para fazer este trabalho, de preferência a partir dobase&nbsp;pacote, como uma alternativa de algum outro pacote comumente usado. Acredito que usar esse padrão provavelmente tornará meu código mais legível e não precisarei redefinir essa função sempre que precisar.