当想用一个矩阵的数据 除以另一个矩阵的对应位置的数值时,可以直接用两个矩阵相除,例子如下
代码语言:javascript复制>a<-matrix(c(2,0,2,0),nrow = 2)
> a
[,1] [,2]
[1,] 2 2
[2,] 0 0
> b<-matrix(c(0.5,0,0,1),nrow = 2)
> b
[,1] [,2]
[1,] 0.5 0
[2,] 0.0 1
代码语言:javascript复制> a/b
[,1] [,2]
[1,] 4 Inf
[2,] NaN 0
> table(a/b)
0 4 Inf
1 1 1
我们可以看到当a矩阵数字不为0,b矩阵也为0时,会得到Inf,而a,b矩阵均为0时会得到NAN, Inf和NAN可以通过替换为0来进行后续的数据分析。
代码语言:javascript复制> c<-a/b
> c[a==0|b==0]<-0
> c
[,1] [,2]
[1,] 4 0
[2,] 0 0
参考:https://www.jianshu.com/p/9cf36b084e83