首页 > 解决方案 > 将列中的值替换为向量值

问题描述

我有一个x具有 3 个级别和 10 个值的向量,以及一个y也具有 3 个级别但只有 3 个值的向量。
x <- c("A","A","A","A","B","B","C","C","C","C")
y <- c("Red","Blue","Green")

我想把As 从x换成Redin y[,1],然后把Bs从x换成Bluein ,y[,2]最后一个也一样。

我想在使用该replace功能作为
z <- replace(x, c("A","B", "C"), c("Red","Blue","Green"))

有任何想法吗?

标签: rvectorreplace

解决方案


I think closest to what you want will be using dplyr::recode:

x <- c("A","A","A","A","B","B","C","C","C","C")
map <- c(A = "Red", B = "Blue", C = "Green")
res <- dplyr::recode(x, !!!map)

or plyr::mapvalues:

res <- plyr::mapvalues(
  x, 
  from = c("A","B", "C"), 
  to = c("Red","Blue","Green")
)

推荐阅读