You've just about got it! The only issue is that you have to place the numbers in backticks.
library(dplyr)
name <- c("John", "Clara", "Smith")
sex <- c(1,2,1)
age <- c(30,32,54)
df <- data.frame(name, sex, age)
df %>%
mutate(sex = recode(sex, `1` = "Male", `2` = "Female"))
#> name sex age
#> 1 John Male 30
#> 2 Clara Female 32
#> 3 Smith Male 54
You need backticks because numbers may not be left of an equal sign:
library(tidyverse)
name <- c("John", "Clara", "Smith")
sex <- c(1,2,1)
age <- c(30,32,54)
df <- data.frame(name, sex, age)
df
#> name sex age
#> 1 John 1 30
#> 2 Clara 2 32
#> 3 Smith 1 54
df %>% mutate (sex= recode(sex,
`1`= "Male",
`2`= "Female"))
#> name sex age
#> 1 John Male 30
#> 2 Clara Female 32
#> 3 Smith Male 54