在 R 中,在向量中,即 1-dim 矩阵中,我想将值为 3 的组件更改为值为 1,将值为 4 的组件更改为值为 2。我该怎么做?谢谢!
问问题
15427 次
1 回答
17
惯用的 r 方式是使用[<-
, 形式
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
感谢@joranmapvalues
从plyr
包中提到,另一个包装器[<-
x <- rep(1:5,3)
mapvalues(x, from = c(3,1), to = c(1,2))
plyr::revalue
是mapvalues
特定 factor
或character
变量的包装器。
于 2013-03-01T01:27:01.550 回答