R で修正する方法: 強制によって導入された na


R で発生する可能性のある一般的な警告メッセージは次のとおりです。

 Warning message:
NAs introduced by coercion 

この警告メッセージは、 as.numeric()を使用して R のベクトルを数値ベクトルに変換し、元のベクトルに数値以外の値が存在した場合に発生します。

明確にしておきますが、この警告メッセージを「修正」するために何もする必要はありません。 R は、元のベクトルの一部の値が数値に変換できなかったために NA に変換されたことを警告するだけです。

ただし、このチュートリアルでは、この警告メッセージをまったく表示したくない場合に実行できる正確な手順を共有します。

警告メッセージを再現する方法

次のコードは、文字ベクトルを数値ベクトルに変換します。

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector
x_num <- as. numeric (x)

#display digital vector
x_num

Warning message:
NAs introduced by coercion 
[1] 1 2 3 NA 4 NA

R は文字ベクトルを数値ベクトルに変換しますが、元のベクトルの 2 つの値を数値に変換できなかったため、 NA が強制によって導入されたという警告メッセージが表示されます。

方法 #1: 警告を削除する

この警告メッセージを処理する 1 つの方法は、文字ベクトルを数値ベクトルに変換するときに、 suppressWarnings()関数を使用して単純に警告メッセージを抑制することです。

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector, suppressing warnings
suppressWarnings(x_num <- as.numeric (x))

#display digital vector
x_num

[1] 1 2 3 NA 4 NA

R は、警告メッセージを表示せずに文字ベクトルを数値ベクトルに正常に変換します。

方法 #2: 数値以外の値を置換する

そもそも警告メッセージを回避する 1 つの方法は、 gsub()関数を使用して元のベクトルの数値以外の値をスペースに置き換えることです。

 #define character vector
x <- c('1', '2', '3', '4', 'Hey')

#replace non-numeric values with 0
x <- gsub(" Hey ", " 0 ", x)

#convert to numeric vector
x_num <- as. numeric (x)

#display digital vector
x_num

[1] 1 2 3 4 0

R は、警告メッセージを表示せずに文字ベクトルを数値ベクトルに正常に変換します。

追加リソース

次のチュートリアルでは、R の他の一般的なエラーを解決する方法について説明します。

R での修正方法: 名前が以前の名前と一致しない
R での修正方法: 長いオブジェクトの長さが短いオブジェクトの長さの倍数ではありません
R での修正方法: コントラストは 2 レベル以上の因子にのみ適用できます。

コメントを追加する

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