-3

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

4

1 回答 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

感谢@joranmapvaluesplyr包中提到,另一个包装器[<-

x <- rep(1:5,3)
mapvalues(x, from = c(3,1), to = c(1,2))

plyr::revaluemapvalues特定 factorcharacter变量的包装器。

于 2013-03-01T01:27:01.550 回答