两个矩阵对应位置相除

2020-08-31 10:05:37 浏览数 (1)

当想用一个矩阵的数据 除以另一个矩阵的对应位置的数值时,可以直接用两个矩阵相除,例子如下

代码语言: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

0 人点赞