R - 如何用另一组值替换一组值
R - How to replace a set of values with another set of values
我有这个问题可以手动解决,但我觉得一定有更简单的答案。
我想用A替换2,用B替换22,用C替换4,......
我有一个数组和另一个 [A,B,C,D,...] 中要替换的所有值。
有没有简单的方法来执行此替换?
谢谢,
米格尔
使用data.table
DT[column1 == "2", column1 := "A"]
如果你想一次做一组,然后使用 data.table
中的 setkey
和 merge
带有参考数据集的数据集。
setkeyv(DT, 'column1')
setkeyv(referenceSet, 'oldVars')
merge(DT, referenceSet, all.x = TRUE)
您可以使用命名向量。
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"
我有这个问题可以手动解决,但我觉得一定有更简单的答案。 我想用A替换2,用B替换22,用C替换4,...... 我有一个数组和另一个 [A,B,C,D,...] 中要替换的所有值。 有没有简单的方法来执行此替换? 谢谢, 米格尔
使用data.table
DT[column1 == "2", column1 := "A"]
如果你想一次做一组,然后使用 data.table
中的 setkey
和 merge
带有参考数据集的数据集。
setkeyv(DT, 'column1')
setkeyv(referenceSet, 'oldVars')
merge(DT, referenceSet, all.x = TRUE)
您可以使用命名向量。
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"