r - Replace values by using names() -


i have df column values ex. 4,5,6,7,3,1,1,3 want column in df based on these values. have key pair names() (names on top)

one det somet ish hir  whynot  4  5    6     7  3    1 

i want new column based on second vector names in place of column one's values based on second vector

try

 df$v2 <- setnames(names(v2), v2)[as.character(df$v1)] 

or use match

 df$v2 <- names(v2)[match(df$v1, v2)] 

data

 df <-  structure(list(v1 = c(4, 5, 6, 7, 3, 1, 1, 3)), .names = "v1",    row.names = c(na, -8l), class = "data.frame")   v2 <- c('one'=4, 'det'=5, 'somet'=6, 'ish'=7, 'hir'=3, 'whynot'=1) 

Comments