在R中,在向量中,即1-dim矩阵,我想将值为3的组件更改为值1,将值为4的组件更改为值2.我该怎么做?谢谢!
答案 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::revalue
是mapvalues
具体factor
或character
个变量的包装器。