如果 R 中的两个矩阵包含缺失值,如何将它们相乘?

如果我们想将两个包含缺失值的矩阵相乘,那么我们首先需要将缺失值转换为零,然后可以轻松完成乘法。如果我们不这样做,那么乘法的输出将在所有位置都有 NA。

如果矩阵中存在 NA,请查看下面给出的示例以了解乘法的正确性。

示例 1

以下代码段创建了一个示例矩阵 -

M1<-matrix(sample(c(NA,rpois(2,5)),25,replace=TRUE),ncol=5)

M1

创建以下矩阵 -

    [,1] [,2] [,3] [,4] [,5]

[1,]  6   10   NA    6   10

[2,]  6   NA   10   10   10

[3,] NA   10   10    6    6

[4,] 10   10   10    6   NA

[5,] 10    6   10   NA    6

如果两个矩阵包含缺失值,则将它们相乘,在上面创建的矩阵上,将以下代码添加到上面的代码片段中 -

M1<-matrix(sample(c(NA,rpois(2,5)),25,replace=TRUE),ncol=5)

M2<-matrix(sample(c(NA,rpois(2,5)),25,replace=TRUE),ncol=5)

M2

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

    [,1] [,2] [,3] [,4] [,5]

[1,]  7    7    7   NA   3

[2,]  7    7    3   NA   3

[3,]  7    3   NA   NA  NA

[4,] NA    7    7   NA   7

[5,] NA    3    7    3   7

如果两个矩阵包含缺失值,则将它们相乘,在上面创建的矩阵上,将以下代码添加到上面的代码片段中 -

M1<-matrix(sample(c(NA,rpois(2,5)),25,replace=TRUE),ncol=5)

M2<-matrix(sample(c(NA,rpois(2,5)),25,replace=TRUE),ncol=5)

M1[is.na(M1)]<-0

M1

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

    [,1] [,2] [,3] [,4] [,5]

[1,]  6   10   0     6   10

[2,]  6    0  10    10   10

[3,]  0   10  10     6    6

[4,] 10   10  10     6    0

[5,] 10    6  10     0    6

如果两个矩阵包含缺失值,则将它们相乘,在上面创建的矩阵上,将以下代码添加到上面的代码片段中 -

M1<-matrix(sample(c(NA,rpois(2,5)),25,replace=TRUE),ncol=5)

M2<-matrix(sample(c(NA,rpois(2,5)),25,replace=TRUE),ncol=5)

M1[is.na(M1)]<-0

M2[is.na(M2)]<-0

M2

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

   [,1] [,2] [,3] [,4] [,5]

[1,] 7   7     7    0    3

[2,] 7   7     3    0    3

[3,] 7   3     0    0    0

[4,] 0   7     7    0    7

[5,] 0   3     7    3    7

如果两个矩阵包含缺失值,则将它们相乘,在上面创建的矩阵上,将以下代码添加到上面的代码片段中 -

M1<-matrix(sample(c(NA,rpois(2,5)),25,replace=TRUE),ncol=5)

M2<-matrix(sample(c(NA,rpois(2,5)),25,replace=TRUE),ncol=5)

M1[is.na(M1)]<-0

M2[is.na(M2)]<-0

M1 %*% M2

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

    [,1] [,2] [,3] [,4] [,5]

[1,] 112 184  184    30 160

[2,] 112 172  182    30 158

[3,] 140 160  114    18 114

[4,] 210 212  142     0 102

[5,] 182 160  130    18  90

示例 2

以下代码段创建了一个示例矩阵 -

M3<-matrix(sample(c(NA,round(rnorm(5),1)),25,replace=TRUE),ncol=5)

M3

创建以下矩阵 -

    [,1]  [,2] [,3] [,4] [,5]

[1,] -0.2 -0.1   NA -0.1 -0.1

[2,]  1.3 -0.1 -0.6   NA  1.3

[3,] -0.1 -0.1  0.4  1.3   NA

[4,]  NA   1.3   NA -0.2 -0.2

[5,]  NA    NA -0.1  0.4 -0.6

如果两个矩阵包含缺失值,则将它们相乘,在上面创建的矩阵上,将以下代码添加到上面的代码片段中 -

M3<-matrix(sample(c(NA,round(rnorm(5),1)),25,replace=TRUE),ncol=5)

M4<-matrix(sample(c(NA,round(rnorm(5),1)),25,replace=TRUE),ncol=5)

M4

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

     [,1] [,2] [,3] [,4] [,5]

[1,] -0.1 -0.1 -0.9  0.7   NA

[2,]  0.7  0.7   NA  0.7 -0.1

[3,]   NA  1.1  0.7   NA -0.9

[4,]  0.7 -0.9   NA  0.7   NA

[5,] -0.7 -0.7  1.1 -0.9 -0.9

如果两个矩阵包含缺失值,则将它们相乘,在上面创建的矩阵上,将以下代码添加到上面的代码片段中 -

M3<-matrix(sample(c(NA,round(rnorm(5),1)),25,replace=TRUE),ncol=5)

M4<-matrix(sample(c(NA,round(rnorm(5),1)),25,replace=TRUE),ncol=5)

M3[is.na(M3)]<-0

M3

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

     [,1] [,2] [,3] [,4] [,5]

[1,] -0.2 -0.1  0.0 -0.1 -0.1

[2,]  1.3 -0.1 -0.6  0.0  1.3

[3,] -0.1 -0.1  0.4  1.3  0.0

[4,]  0.0  1.3  0.0 -0.2 -0.2

[5,]  0.0  0.0 -0.1  0.4 -0.6

如果两个矩阵包含缺失值,则将它们相乘,在上面创建的矩阵上,将以下代码添加到上面的代码片段中 -

M3<-matrix(sample(c(NA,round(rnorm(5),1)),25,replace=TRUE),ncol=5)

M4<-matrix(sample(c(NA,round(rnorm(5),1)),25,replace=TRUE),ncol=5)

M3[is.na(M3)]<-0

M4[is.na(M4)]<-0

M4

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

     [,1]  [,2] [,3] [,4] [,5]

[1,] -0.1 -0.1 -0.9  0.7  0.0

[2,]  0.7  0.7  0.0  0.7 -0.1

[3,]  0.0  1.1  0.7  0.0 -0.9

[4,]  0.7 -0.9  0.0  0.7  0.0

[5,] -0.7 -0.7 1.1  -0.9 -0.9

如果两个矩阵包含缺失值,则将它们相乘,在上面创建的矩阵上,将以下代码添加到上面的代码片段中 -

M3<-matrix(sample(c(NA,round(rnorm(5),1)),25,replace=TRUE),ncol=5)

M4<-matrix(sample(c(NA,round(rnorm(5),1)),25,replace=TRUE),ncol=5)

M3[is.na(M3)]<-0

M4[is.na(M4)]<-0

M3 %*% M4

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

      [,1]  [,2]  [,3]  [,4]   [,5]

[1,] -0.05  0.11  0.07 -0.19  0.10

[2,] -1.11 -1.77 -0.16 -0.33 -0.62

[3,]  0.85 -0.79  0.37  0.77 -0.35

[4,]  0.91  1.23 -0.22  0.95  0.05

[5,]  0.70 -0.05 -0.73  0.82  0.63

以上是 如果 R 中的两个矩阵包含缺失值,如何将它们相乘? 的全部内容, 来源链接: utcz.com/z/338672.html

回到顶部