如何在 R 中根据条件将矩阵中的值替换为其他值?
r programmingserver side programmingprogramming更新于 2025/6/27 18:37:17
矩阵中只有数值,有时这些值输入错误,或者我们可能希望根据某些条件替换矩阵中的某些值。例如,如果矩阵中只有几个"5",那么我们可能希望将所有"5"替换为大于 5 或小于 5 的其他数字。
示例
考虑以下矩阵 −
set.seed(123) M <-matrix(sample(1:50,25),nrow=5) M
输出
[,1] [,2] [,3] [,4] [,5] [1,] 31 43 27 29 36 [2,] 15 37 5 8 19 [3,] 14 48 40 41 4 [4,] 3 25 28 7 45 [5,] 42 26 9 10 17
根据不同条件替换值 −
示例
M[M <5]<-10 M
输出
[,1] [,2] [,3] [,4] [,5] [1,] 31 43 27 29 36 [2,] 15 37 5 8 19 [3,] 14 48 40 41 10 [4,] 10 25 28 7 45 [5,] 42 26 9 10 17
示例
M[M=5] <-15 M
输出
[,1] [,2] [,3] [,4] [,5] [1,] 31 43 27 29 36 [2,] 15 37 5 8 19 [3,] 14 48 40 41 10 [4,] 10 25 28 7 45 [5,] 15 26 9 10 17
prettyprint
M[M==5] <-15 M
输出
[,1] [,2] [,3] [,4] [,5] [1,] 31 43 27 29 36 [2,] 15 37 15 8 19 [3,] 14 48 40 41 10 [4,] 10 25 28 7 45 [5,] 15 26 9 10 17
示例
M[M<10&M>5]<-21 M
输出
[,1] [,2] [,3] [,4] [,5] [1,] 31 43 27 29 36 [2,] 15 37 15 21 19 [3,] 14 48 40 41 10 [4,] 10 25 28 21 45 [5,] 15 26 21 10 17
示例
M[M >30]<-25 M
输出
[,1] [,2] [,3] [,4] [,5] [1,] 25 25 27 29 25 [2,] 15 25 15 21 19 [3,] 14 25 25 25 10 [4,] 10 25 28 21 25 [5,] 15 26 21 10 17
示例
M[M==14] <-25 M
输出
[,1] [,2] [,3] [,4] [,5] [1,] 25 25 27 29 25 [2,] 15 25 15 21 19 [3,] 25 25 25 25 10 [4,] 10 25 28 21 25 [5,] 15 26 21 10 17
示例
M[M==17] <-15 M
输出
[,1] [,2] [,3] [,4] [,5] [1,] 25 25 27 29 25 [2,] 15 25 15 21 19 [3,] 25 25 25 25 10 [4,] 10 25 28 21 25 [5,] 15 26 21 10 15
示例
M[M>25&M <30]<-25 M
输出
[,1] [,2] [,3] [,4] [,5] [1,] 25 25 25 25 25 [2,] 15 25 15 21 19 [3,] 25 25 25 25 10 [4,] 10 25 25 21 25 [5,] 15 25 21 10 15