使用名称替换值()

时间:2015-06-03 06:39:08

标签: r

我有一个带有值为ex的列的df。    4,5,6,7,3,1,1,3 我希望根据这些值在此df中添加另一列。 我有名字密钥对()(名字在上面)

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

我想要一个基于第二个向量的新列,其名称代替基于第二个向量的第一列值

1 个答案:

答案 0 :(得分:2)

尝试

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

或使用match

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

数据

 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)