R の行列から na を削除する方法 (例あり)


次のメソッドを使用して、R の行列から NA 値を削除できます。

方法 1: NA 値を含む行を削除する

 new_matrix <- my_matrix[ ! rowSums( is.na (my_matrix)),]

方法 2: NA 値を持つ列を削除する

 new_matrix <- my_matrix[, ! colSums( is.na (my_matrix))]

次の例は、R の次の行列を使用して各メソッドを実際に使用する方法を示しています。

 #create matrix
my_matrix <- matrix(c(NA, 0, NA, 5, 7, 4, 1, 3, 9, 5, 5, 8), nrow= 4 )

#view matrix
my_matrix

     [,1] [,2] [,3]
[1,] NA 7 9
[2,] 0 4 5
[3,] NA 1 5
[4,] 5 3 8

方法 1: NA 値を含む行を削除する

次のコードは、NA 値を含むすべての行を行列から削除する方法を示しています。

 #remove all rows with NA values
new_matrix <- my_matrix[ ! rowSums( is.na (my_matrix)),]

#view updated matrix
new_matrix

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

NA 値を持つすべての行が行列から削除されていることに注意してください。

関連: R で rowSums() 関数を使用する方法

方法 2: NA 値を持つ列を削除する

次のコードは、NA 値を含むすべての列を行列から削除する方法を示しています。

 #remove all columns with NA values
new_matrix <- my_matrix[, ! colSums( is.na (my_matrix))]

#view updated matrix
new_matrix

     [,1] [,2]
[1,] 7 9
[2,] 4 5
[3,] 1 5
[4,] 3 8

NA 値を持つすべての列が行列から削除されていることに注意してください。

関連: R でのcolSums() 関数の使用方法

ボーナス: NA 値を行列でゼロに変換します

単に行列内のすべての NA 値をゼロに変換したい場合は、次の構文を使用できます。

 #remove all columns with NA values
my_matrix[is. na (my_matrix)] <- 0

#view updated matrix
my_matrix

     [,1] [,2] [,3]
[1,] 0 7 9
[2,] 0 4 5
[3,] 0 1 5
[4,] 5 3 8

すべての NA 値がゼロに変換されていることに注意してください。

追加リソース

次のチュートリアルでは、R で欠損値を使用して他の一般的な操作を実行する方法について説明します。

RのベクトルからNA値を削除する方法
Rで欠損値を見つけて数える方法
Rで欠損値をすべて代入する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です