如何透過指定包含 NA 的列來提取 R 中的矩陣子集?


要透過指定包含 NA 的列來提取 R 中的矩陣子集,我們可以按照以下步驟進行 -

  • 首先,建立一個包含一些 NA 的矩陣。

  • 然後,使用 is.na 和子集函式透過指定包含 NA 的列來提取矩陣子集。

示例

建立矩陣

讓我們建立一個如下所示的矩陣 -

M<-matrix(sample(c(NA,round(rnorm(3),2)),75,replace=TRUE),ncol=3)
M

輸出

執行後,上面的指令碼將生成以下輸出(由於隨機化的原因,該輸出在您的系統上會有所不同)-

      [,1]   [,2]  [,3]
[1,]   NA   -0.05  1.93
[2,]  -1.31 -1.31 -0.05
[3,]  -0.05 -0.05  NA
[4,]   NA    1.93 -1.31
[5,]  -0.05 -0.05 -0.05
[6,]   NA   -1.31  NA
[7,]  -1.31 -0.05  1.93
[8,]   1.93  1.93  NA
[9,]  -1.31 -1.31 -1.31
[10,]  NA    1.93  NA
[11,] -0.05 -1.31  1.93
[12,] -1.31 -0.05 -0.05
[13,]  NA    1.93 -1.31
[14,]  NA    NA   -0.05
[15,]  NA   -0.05  NA
[16,] -0.05 -1.31 -1.31
[17,]  1.93 -0.05 -0.05
[18,] -0.05 -0.05  NA
[19,] -0.05 -0.05  1.93
[20,] -0.05  1.93 -1.31
[21,] -0.05 -1.31 -0.05
[22,] -1.31 -0.05  NA
[23,] -0.05  1.93  1.93
[24,]  NA   -1.31 -1.31
[25,] -0.05  1.93 -1.31

透過指定含有 NA 的列來提取矩陣子集

使用 is.na 和子集函式透過指定包含 NA 的第 1 列和第 3 列來提取矩陣 M,如下所示 -

M<-matrix(sample(c(NA,round(rnorm(3),2)),75,replace=TRUE),ncol=3)
subset(M,is.na(M[,1])|is.na(M[,3]))

輸出

     [,1]   [,2]  [,3]
[1,]   NA   -0.05  1.93
[2,]  -0.05 -0.05  NA
[3,]   NA    1.93 -1.31
[4,]   NA   -1.31  NA
[5,]   1.93  1.93  NA
[6,]   NA    1.93  NA
[7,]   NA    1.93 -1.31
[8,]   NA    NA   -0.05
[9,]   NA   -0.05  NA
[10,] -0.05 -0.05  NA
[11,] -1.31 -0.05  NA
[12,]  NA   -1.31 -1.31

更新於: 2021 年 11 月 16 日

114 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.