将向量中的某些组件值替换为其他值

时间:2013-03-01 01:21:38

标签: r

在R中,在向量中,即1-dim矩阵,我想将值为3的组件更改为值1,将值为4的组件更改为值2.我该怎么做?谢谢!

1 个答案:

答案 0 :(得分:14)

惯用方法是在表单中使用[<- x[index] <- result

如果您正在处理整数/因子或字符变量,那么==将可靠地用于索引,

x <- rep(1:5,3)
x[x==3] <- 1
x[x==4] <- 2

x
## [1] 1 2 1 2 5 1 2 1 2 5 1 2 1 2 5

car有一个有用的函数recode[<-的包装器),可让您在一次调用中合并所有重新编码

例如

library(car)

x <- rep(1:5,3)

xr <- recode(x, '3=1; 4=2')

x
## [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
xr
## [1] 1 2 1 2 5 1 2 1 2 5 1 2 1 2 5

感谢@joran提到mapvalues包中的plyr[<-

的另一个包装器
x <- rep(1:5,3)
mapvalues(x, from = c(3,1), to = c(1,2))

plyr::revaluemapvalues具体factorcharacter个变量的包装器。