Another way maybe:
df <- sample(1:3, 100, replace = T)
a <- c(1,2,3)
b <- c('Yes', 'No', 'Maybe')
df[df %in% a] <- na.omit(b[match(df, a)])
Or dealing like a factor:
df <- sample(1:3, 100, replace = T)
df <- as.character(factor(df, labels = c('Yes', 'No', 'Maybe')))