如何在 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
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP