如果 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