R - 如何用另一组值替换一组值

时间:2015-12-11 16:31:15

标签: r find replaceall

我有这个问题,我可以手动解决,但我觉得必须有一个更简单的答案。 我想用A替换2,用B替换22,用C替换4,...... 我有一个我要在数组中替换的值和另一个[A,B,C,D,...]。 有没有简单的方法来执行此替换? 谢谢, 米格尔

2 个答案:

答案 0 :(得分:4)

您可以使用命名向量。

x <- sample(1:10, 8)
x
# [1]  4  9  6 10  8  3  7  5
y <- c("A", "B", "C")
names(y) <- 1:3
x[x%in%names(y)] <- y[x[x%in%names(y)]]
x
# [1] "4"  "9"  "6"  "10" "8"  "C"  "7"  "5" 

答案 1 :(得分:2)

使用data.table

DT[column1 == "2", column1 := "A"]

如果您想一次执行一组,请使用setkey中的data.tablemerge数据集与参考数据集。

setkeyv(DT, 'column1')
setkeyv(referenceSet, 'oldVars')

merge(DT, referenceSet, all.x = TRUE)