Search code examples
rdplyrrecode

Dplyr: Recode numeric and character vectors


I have a screen of death in my mind. How do I use recode in dplyr?

data = data.frame(id=rep(1:10, each=1), time=seq(1:5), char = strrep("a", 3))

library(dplyr) # everything throws an error
data %>% recode(time, `1` = 0)
data %>% recode(time, `1` = 0L)
data %>% recode(time, 1 = 0)
data %>% recode(time, 1 = 0L)

data %>% recode(char, aaa = 0)
data %>% recode(time, "aaa" = 0)

Best regards


Solution

  • This is because recode takes a vector as argument, not a data.frame :

    data %>% mutate(time2 = recode(time, `1` = 0L))
    data %>% mutate(char2 = recode(char, aaa = 0))
    data %>% mutate(char2 = recode(as.character(char), aaa = 0))