-1
我一直在寻找一个替代矢量的特定值的函数。例如,你有包括值A
,B
,C
,D
和NA
一个特征向量,并希望与E
和NA
与F
更换A
。如何替换R中矢量的特定值?
我试着写一个函数,并提出了下面。它似乎工作正常,但有问题,包括它将因素转换为字符。
recode <- function(x, old, new) {
u <- rep(NA, length(x))
for (i in 1:length(old)) {
if(is.na(old[i])) {
u[is.na(x)] <- new[i]
} else {
u[x == old[i]] <- new[i]
}
}
return(ifelse(x %in% old, u, x))
}
例如:
a <- sample(c("A", "B", "C", "D", NA), 20, replace = T)
recode(a, old = c("A", NA), new = c("E", "F"))
或许已经存在,做这样的功能,我只是还没有找到它!还是有人知道一个明智的方法来做到这一点?
谢谢迈克尔 - 这正是我正在寻找的。 –