R で nan 値を処理する方法 (例付き)


R では、 NaN はNot a Number を表します。

通常、NaN 値は、無効な結果が得られる計算を実行しようとしたときに発生します。

たとえば、ゼロで除算するか、負の数の対数を計算すると、どちらも NaN 値が生成されます。

 #attempt to divide by zero
0 / 0

[1]NaN

#attempt to calculate log of negative value
log(-12)

[1]NaN

NaN 値は、単に欠損値を表すNA値とは異なることに注意してください。

R で NaN 値を処理するには、次のメソッドを使用できます。

 #identify positions in vector with NaN values
which(is. nan (x))

#count total NaN values in vector
sum(is. nan (x)) 

#remove NaN values in vector
x_new <- x[!is. no (x)]

#replace NaN values in vector
x[is. nan (x)] <- 0 

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

例 1: NaN 値を含むベクトル内の位置を特定する

次のコードは、NaN 値を含むベクトル内の位置を識別する方法を示しています。

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#identify positions with NaN values
which(is. nan (x))

[1] 2 4

結果から、ベクトル内の位置2位置 4の要素が NaN 値であることがわかります。

例 2: ベクトル内の合計 NaN 値をカウントする

次のコードは、R のベクトル内の NaN 値の合計数をカウントする方法を示しています。

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#identify positions with NaN values
sum(is. nan (x))

[1] 2

結果から、ベクトル内に合計2 つのNaN 値があることがわかります。

例 3: ベクトル内の NaN 値を削除する

次のコードは、元のベクトルから NaN 値が削除された新しいベクトルを作成する方法を示しています。

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#define new vector with NaN values removed
x_new <- x[!is. no (x)]

#view new vector
x_new

[1] 1 12 50 30

2 つの NaN 値がベクトルから削除されていることに注意してください。

例 4: ベクトル内の NaN 値を置換する

次のコードは、ベクトル内の NaN 値をゼロに置き換える方法を示しています。

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#replace NaN values with zero
x[is. nan (x)] <- 0

#view updated vector
x

[1] 1 0 12 0 50 30

ベクトルでは両方の NaN 値がゼロに置き換えられていることに注意してください。

追加リソース

次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。

Rで欠損値を補間する方法
Rで欠損値を見つけて数える方法
R で「Is Not NA」を使用する方法

コメントを追加する

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